JDBC连接MySQL插入数据问题

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "123456");
PreparedStatement sqlStmt =null;
String Email=request.getParameter("Email");
String Password=request.getParameter("Password");
String RePassword=request.getParameter("RePassword");
int power=1;
String sql = "INSERT INTO user_type(user_name,password,power) VALUES (?,?,?)";
sqlStmt=conn.prepareStatement(sql);
sqlStmt.setString(1,"Email") ;
sqlStmt.setString(2,"Password") ;
sqlStmt.setInt(3,'1') ;
sqlStmt.executeUpdate(sql);

out.print("alert('插入成功!');window.location.href='contact.html'");

7个回答

sqlStmt.executeUpdate(sql);无法执行成功

ACMAIN_CHM
ACMAIN_CHM 错误提示是什么?
5 年多之前 回复

你把异常抛出来不就知道了!

是什么出问题了?连接问题还是数据格式问题?

sqlStmt=conn.prepareStatement(sql);
sqlStmt.setString(1,"Email") ;
sqlStmt.setString(2,"Password") ;
sqlStmt.setInt(3,'1') ;

改为:
sqlStmt=conn.prepareStatement(sql);
sqlStmt.setString(1,Email) ;
sqlStmt.setString(2,Password) ;
sqlStmt.setInt(3,power) ;

检查你的sql,字段、表名是否正确,password是关键字,写成'password',还有sqlStmt.setInt(3,'1');修改为sqlStmt.setInt(3,1);

看看java抛出的异常错误信息,能定位出来的

sqlStmt.setString(1,"Email") ;
sqlStmt.setString(2,"Password") ;
sqlStmt.setInt(3,'1') ;
1. 你这样写是不会把 request 对象里的 Email 等信息持久化的,你持久化的是 "Email" 字符串。
2. setInt 可以直接传 int 类型数据。
3. 异常信息不贴,大家的肉眼又不是编译器,很难给你扫描出来问题症兆所在。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问