日期:2014-05-17  浏览次数:21232 次

求大神 Jdbc 链接数据库 PreparedStatement 插入数据不成功
数据库users描述 id 自增长,username(varchar),password(varchar),email(varchar),birthday(Date)
1、用写死的sql语句String sql = "insert into users(username,password,email,birthday)values('aaa','aaa','hxr2010@qq.com','1992-09-09');";
插入成功
2、用拼接sql语句insertintousers(username,password,email,birthday)values
('"+user.getUsername()+"','"+user.getPassword()+"','"+user.getEmail()+"','"+user.getBirthday()+"');
不能成功
用拼接sql语句insertintousers(username,password,email,birthday)values
('"+user.getUsername()+"','"+user.getPassword()+"','"+user.getEmail()+"','"+new java.sql.Date(user.getBirthday().getTime())+"');
也不能成功

3、用
String sql = "insert into users(username,password,email,birthday) values(?,?,?,?)";
st = conn.prepareStatement(sql);
st.setString(1, user.getUsername());
st.setString(2, user.getPassword());
st.setString(3, user.getEmail());
st.setDate(4, new java.sql.Date(user.getBirthday().getTime()));  //sql

st.executeUpdate();
不能成功插入

现求大神解释,并帮助小弟解决此问题
------解决方案--------------------
有可能是你的user对象没值吧,把控制台报的异常信息贴上来。
------解决方案--------------------
把异常信息抓出来,把SQL打印出来 ,然后用SQL insert试试,看看就知道哪里有问题了。
------解决方案--------------------
错误信息赶紧的哦
------解决方案--------------------
首先你用的数据库是什么?其次,既然插入不成功,数据库给你的提示信息是什么?
------解决方案--------------------
关键是要控制台输出的错误信息啊  = =!
------解决方案--------------------
还是附和大家说的,把异常贴出来吧
------解决方案--------------------
看是不是类型不匹配;
是否没获取到值;
debug一下看看;