您的位置:首页 > 数据库 > MySQL

调试第一个访问MySQL数据库的Servlet时遇到的问题

2011-01-31 18:58 218 查看
你能发现下面这段代码中的一个错误么?

stmt.executeUpdate("CREATE TABLE bookinfo(id INT NOT NULL primary key, title VARCHAR(50) NOT NULL, author VARCHAR(50) NOT NULL, bookconcern VARCHAR(100) NOT NULL,publish_date DATE NOT NULL, 价格 FLOAT(4,2) NOT NULL,amount SMALLINT, remark VARCHAR(200))ENGINE = InnoDB");

stmt.addBatch("INSERT INTO bookinfo values(1, 'Java 从入门到精通','张三','张三出版社','2004-6-1',34.00,35,null)");

stmt.addBatch("INSERT INTO bookinfo values(2,'JSP深入编程','李四','李四出版社','2004-3-1',56.00,20,null)");

stmt.addBatch("INSERT INTO bookinfo values(3, 'J2EE高级编程','王五','王五出版社','2005-3-1',78.00,10,null)");


对了,就是在向数据库中插入第一条记录时,在'张三'字段结束的时候那个逗号错误的使用了中文输入逗号,而不是英文逗号,结果程序就只将第二、第三条记录插入数据库,然后就抛出这样一个异常:
ava.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??? '?????‰????‰??¤?','2004-6-1',34.00,35,null)' at line 1
这里请注意“near '??? '?????‰????‰??¤?','2004-6-1',34.00,35,null)' ”这句话,就指出了程序中发生错误的位置,稍加检查就会发现紧靠这句话前面的那个逗号错了。如果不注意,这个错误是很容易发生但却不易检查出来的,尤其是向数据库中插入大量数据的时候。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: