一个小问题!但我找了很久也找不出毛病!求大家帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/23 17:38:49
我是用Mysql数据库的;
这是我创建的表
CREATE TABLE note
(
id int not null auto_increment primary key ,
title varchar(20) not null ,
author varchar(20) not null ,
content varchar(50) not null
) ;

主要不明白的就是这一段小地方!
String sql="insert into note values(null,?,?,?)";
try{
Class.forName(driver);
conn=DriverManager.getConnection(durl,dname,dpassword);
pst=conn.prepareStatement(sql);
pst.setString(1,title);
pst.setString(2,author);
pst.setString(3,content);
pst.executeUpdate() ;//当执行到这步就会跳到;catch
pst.close(); //这里就不执行了,这是为什么啊???????
conn.close();
}catch(Exception e){
System.out.println(flag);//执行这里
}
没null的话,连插入都是错的,这是mysql,而且我设为auto_increment这样就是正确的

大家说的我早就试过了,就是不行
行的话,我也不会来问!!!!!

当然肯定啦

终于找到了错误!
原来是不是这里的错,是其它地方的错误!
但还是非常多谢大家的帮助!
分数不能分给每个人,只能随机挑一个了。遗憾啊!

楼主
String sql="insert into note values(null,?,?,?)"; //这句肯定没有错误

你确定title,author,content都是String 类型吗?
pst是PreparedStatement类型么 没导错包么
或者你应该把你前面的导包 和创建数据连接的代码都发出来
你导入mysql的jar包了么
Class.forName("prg.gjt.mm.mysql.Driver");
连接字符串:"jdbc:mmysql:127.0.0.1:3306/数据库名","root",""

String sql="insert into note values(null,?,?,?)";
去掉null试试

String sql="insert into note values(null,?,?,?)";

这里你改一下,那里是不是你的主键

String sql="insert into note values('1',?,?,?)";

title varchar(20) not null

String sql="insert into note values(null,?,?,?)";

???????????
很明显么

String sql=insert into note(title, author, content) values(?,?,?);
改成这样 其他的不变 问题应该会解决~

有个列是自动增长的话,好像预处理的时候是会有些问题的.
建议把列名写齐:
insert into note title,author,content values(?,?,?)";