用jdbc插入数据的时候,保证url字段里的数据唯一表的结构是:
CREATE TABLE `link` (
`id` int(11) NOT NULL auto_increment,
`url` varchar(255) default NULL,
`title` varchar(255) default NULL,
`creep` int(11) default NULL,
`crawl` int(11) default NULL,
`time` datetime default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;程序代码:
...
Statement stmt = conn.createStatement();
String sql1 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('1www.510baby.com', '510baby', '0')";
stmt.execute(sql1);
String sql2 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('2www.510baby.com', '510baby', '0')";
stmt.execute(sql2);
stmt.close();
...
当表里没有'1www.510baby.com'和'2www.510baby.com'数据的时候,上面的执行都可以成功 ...
Statement stmt = conn.createStatement();
String sql3 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('3www.510baby.com', '510baby', '0')";
stmt.execute(sql1);
String sql4 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('2www.510baby.com', '510baby', '0')";
stmt.execute(sql2);
stmt.close();
...
当再执行上面的语句时,'3www.510baby.com'能插入,'2www.510baby.com'不能插入但是当
...
Statement stmt = conn.createStatement();
String sql5 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('3www.510baby.com', '510baby', '0')";
stmt.execute(sql1);
String sql6 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('4www.510baby.com', '510baby', '0')";
stmt.execute(sql2);
stmt.close();
再执行上面语句的时候,'4www.510baby.com'插入不了。
怎么能够当前面一条插入失败后,还能成功执行下一条语句呀?
CREATE TABLE `link` (
`id` int(11) NOT NULL auto_increment,
`url` varchar(255) default NULL,
`title` varchar(255) default NULL,
`creep` int(11) default NULL,
`crawl` int(11) default NULL,
`time` datetime default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `url` (`url`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;程序代码:
...
Statement stmt = conn.createStatement();
String sql1 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('1www.510baby.com', '510baby', '0')";
stmt.execute(sql1);
String sql2 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('2www.510baby.com', '510baby', '0')";
stmt.execute(sql2);
stmt.close();
...
当表里没有'1www.510baby.com'和'2www.510baby.com'数据的时候,上面的执行都可以成功 ...
Statement stmt = conn.createStatement();
String sql3 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('3www.510baby.com', '510baby', '0')";
stmt.execute(sql1);
String sql4 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('2www.510baby.com', '510baby', '0')";
stmt.execute(sql2);
stmt.close();
...
当再执行上面的语句时,'3www.510baby.com'能插入,'2www.510baby.com'不能插入但是当
...
Statement stmt = conn.createStatement();
String sql5 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('3www.510baby.com', '510baby', '0')";
stmt.execute(sql1);
String sql6 = "INSERT INTO `link` (`url`,`title`,`creep`)VALUES ('4www.510baby.com', '510baby', '0')";
stmt.execute(sql2);
stmt.close();
再执行上面语句的时候,'4www.510baby.com'插入不了。
怎么能够当前面一条插入失败后,还能成功执行下一条语句呀?
解决方案 »
- hashmap和hashtable的 同步和异步 是什么意思???
- 请问 如何取得789这个数
- java随机数问题
- 帮帮忙,先谢谢了
- Map模糊查询的问题
- java.lang.Class中的getMethod(String name, Class[] parameterTypes)方法,我的方法中没有parameterTypes,怎么办?
- 关于防火墙原理(JAVA做)
- 含applet的html文件在本机上正常运行,在局域网的另台机器上报错!求解决之道
- 第一次用access2010连不上,大神帮我看看代码吧......
- 窗口如何关闭
- J2se怎么操作BlueTooth??
- 两个ArrayList<String> 如何合并到一个?
LZ试试单独插入'4www.510baby.com'是否能成功?
stmt.execute(sql2);
stmt.close();
像这种语句应该单独执行,也就是一次只插入一条记录,你那样中间一个失败了,抛出异常当然后面的就不会执行了
然后一次性全部提交
lz试试插入两条一样的,数据库里面没有的数据试试-_-!