标题:ecplise中java 连数据库问题
只看楼主
tigershi10
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-10-12
得分:0 
不知怎么搞的现在出现这个问题
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3255)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1293)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:867)
at mypackage.DataConnection.main(DataConnection.java:25)
程序没变
包导入如下


专业源于品质
2007-05-28 23:05
tigershi10
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-10-12
得分:0 
谁帮我看看哦

专业源于品质
2007-05-28 23:06
tigershi10
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-10-12
得分:0 

现在变成这个错误了
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3255)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1293)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:867)
at mypackage.DataConnection.main(DataConnection.java:25)
数据库能写进东西,但字能写入第一个names[0],id能自动增1,但name不要变,总是names[0]


专业源于品质
2007-05-29 00:09
tigershi10
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-10-12
得分:0 

我现在能运行了,但我发现一个问题,我也不知道为什么
当我用这些语句
create table friends(
id int auto_increment primary key,
name varchar(30) not null default 'NULL',
description varchar(50)
);
创建表时会出现错误
com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3255)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1293)
at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:867)
at mypackage.DataConnection.main(DataConnection.java:25)
数据库中有数据:
id name description
1 liu null
当我把原程序中
for(int i=0;i<6;i++)
{
prestatement.setInt(1, i);
prestatement.setString(2, names[i]);
prestatement.execute();
}
中改为for(int i=1;i<6;i++)时,就不会抛出异常
控制台结果为
qian
shi
xu
zhou
lu
数据库中数据为
id name description
1 qian null
2 shi null
3 xu null
4 zhou null
5 lu null
很明显我没有让它显示names[0],但没有抛出异常


专业源于品质
2007-05-29 00:50
tigershi10
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-10-12
得分:0 

当我用这些语句
create table friends(
id int primary key,
name varchar(30) not null default 'NULL',
description varchar(50)
);
即把id int auto_increment primary key改为id int primary key
创建表时,就一切正常
也不知道为什么
还有要谢谢楼上的beyond_p
String driver = "com.mysql.jdbc.Driver" D确实要大写
谁能帮我解决这些问题
十分感谢


专业源于品质
2007-05-29 00:55
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
你ID是自动增长的,你写SQL语句的时候就不要把ID也写进来了。
String insert ="insert friends(name) values (?)";

[此贴子已经被作者于2007-5-29 9:04:45编辑过]


人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-05-29 09:01
tigershi10
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-10-12
得分:0 

谢谢楼上的,你说的很对,我终于明白了


专业源于品质
2007-05-29 17:15
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
得分:0 
它不说了吗 说你违反了数据的完整性!
你用了auto_increment 主键 会自动随着记录的增加而增加
所以你用auto_increment 再用 prestatement.setInt(1, i); 就会报错
你试试把 prestatement.setInt(1, i);去掉 看看还有没有问题

[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-05-29 19:49
野蛮女人
Rank: 5Rank: 5
等 级:贵宾
威 望:19
帖 子:827
专家分:0
注 册:2007-4-7
得分:0 

啊哦 已经有人回答了 没看到


[shadow=255,purple,5]好人不长命,祸害一万年![/shadow]
2007-05-29 19:50
tigershi10
Rank: 1
等 级:新手上路
帖 子:84
专家分:0
注 册:2006-10-12
得分:0 

也谢谢你,呵呵


专业源于品质
2007-05-29 21:11



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-143034-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.625286 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved