我在程序中创建了一个表:
String query = "create table student ( " +
" snumber int ," +
" sname varchar(20) ," +
" sgender varchar(4) ," +
" sage int ," +
" smath double ," +
" senglish double ," +
" schinese double ," +
" sphysical double ," +
" schemistry double ," +
" spoint double , " +
" Primary key ( snumber )" +
")" ; 表很简单,snumber 是主键。
但是在添加数据的时候,数据库没有控制重复的主键数据,仍然添加相同主键的数据,问问可能是什么问题。
添加数据命令:
String order = "insert into student (snumber,sname,sgender,sage,smath,senglish,schinese,sphysical,schemistry,spoint) values( " +
getstd.number + "," +
"'" + getstd.name + "' , " +
"'" + getstd.gender + "' , " +
getstd.age + " , " +
getstd.math + " , " +
getstd.english + " , " +
getstd.chinese + " , " +
getstd.physical + " , " +
getstd.chemistry + ", " +
(double)((int)(getstd.mathPoint() * 1000))/1000 +
" )" ;
String query = "create table student ( " +
" snumber int ," +
" sname varchar(20) ," +
" sgender varchar(4) ," +
" sage int ," +
" smath double ," +
" senglish double ," +
" schinese double ," +
" sphysical double ," +
" schemistry double ," +
" spoint double , " +
" Primary key ( snumber )" +
")" ; 表很简单,snumber 是主键。
但是在添加数据的时候,数据库没有控制重复的主键数据,仍然添加相同主键的数据,问问可能是什么问题。
添加数据命令:
String order = "insert into student (snumber,sname,sgender,sage,smath,senglish,schinese,sphysical,schemistry,spoint) values( " +
getstd.number + "," +
"'" + getstd.name + "' , " +
"'" + getstd.gender + "' , " +
getstd.age + " , " +
getstd.math + " , " +
getstd.english + " , " +
getstd.chinese + " , " +
getstd.physical + " , " +
getstd.chemistry + ", " +
(double)((int)(getstd.mathPoint() * 1000))/1000 +
" )" ;
解决方案 »
- 将从数据库中查出来的数据保存在list里,再次调用这个list时如何不要再查数据库
- POI 导入excel 如果内容出现 以.0结尾的、 那么.0导入不进去,该怎么处理?谢谢
- 弱弱的问个问题,我现在应该学struts还是spring
- 对aop使用的疑惑+问题
- Struts 标记里面如何设置checkbox为选中状态????
- Struts中编译actoin的问题
- 求java生成xml文件的例子
- getHibernateTemplate的find方法有时候执行有时候不执行是怎么回事?
- 打war包到tomcat运行报错
- redis的setnx为什么能实现分布式锁?
- struts2配置文件 打不开
- myeclipse下tomcat启动变慢,究竟是什么问题,求指教?
String query = "create table student ( " +
" snumber int primary key," + //加上主键约束primary key
" sname varchar(20) ," +
" sgender varchar(4) ," +
" sage int ," +
" smath double ," +
" senglish double ," +
" schinese double ," +
" sphysical double ," +
" schemistry double ," +
" spoint double , " +
" Primary key ( snumber )" +
")" ;
" snumber int ," +
" sname varchar(20) ," +
" sgender varchar(4) ," +
" sage int ," +
" smath double ," +
" senglish double ," +
" schinese double ," +
" sphysical double ," +
" schemistry double ," +
" spoint double , " +
" Primary key ( snumber ), UNIQUE KEY `idx_snumber` (`snumber`)" +
")" ;
用这种试试 snumber int primary key,
把 Primary key (snumber) 这个删了。
我有学过SQL server 的语言,和access的有细小差别, "snumber int primary key" 会报错。
JDriver = "sun.jdbc.odbc.JdbcOdbcDriver"
我的驱动, 添加 "snumber int primary key" 报:无效操作。
我用 MS access 打开的时候,显示的确是是 snumber 前面有钥匙,代表主键。
我用了unique , "constraint id_number unique (snumber) "
编译通过,不过还是没有实现键约束。
2> ALTER COLUMN id INT NOT NULL;1> ALTER TABLE test_tab
2> ADD CONSTRAINT pk_test_tab PRIMARY KEY(id);
还是不好使,最后用自己控制和改用 SQL server 搞定,谢谢大家。