问题描述
- 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'");
解决方案
sqlStmt.executeUpdate(sql);无法执行成功
解决方案二:
你把异常抛出来不就知道了!
解决方案三:
是什么出问题了?连接问题还是数据格式问题?
解决方案四:
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. 异常信息不贴,大家的肉眼又不是编译器,很难给你扫描出来问题症兆所在。