这个是代码,打了两个断点,输出
这是输出结果,没有走if里面。明明1>0,可为什么还是不成立呢
你的代码有问题。
你在System.out.println(新增方法);
这句不仅输出了结果,在数据库中也实际新增了一条数据。
然后你在if中又调用了一次这个添加方法,所以又新增了一条和刚才新增的一样的数据。
然而却违反了主键唯一约束。所以if中的这个添加方法返回值实际是-1(执行失败)
实际成功添加数据的地方在System.out.println中,所以返回的是1
我觉得,你可以先定义一个变量 x,把Jingshenyalidengjimapper.insert(Tj)的返回值赋给变量x,再试试
看看吧,http://blog.csdn.net/topasstem8/article/details/17893197/
Jingshenyalidengjimapper.insert(Tj)这个方法的返回值,是什么类型呢?
是不是插入语句的外建什么弄错了,Duplicate entry '67' for key 'PRIMARY',这句话是指主键重复了
你的两个方法调用的不一样,insertSelective执行OK,但是insert方法执行出现异常,所以才会出错。
67 for key 'PRIMARY'
Jingshenyalidengjimapper.insert(Ti)的时候出现了插入的异常,所以不会进入if
你的数据库应该有残留的数据 id是67 所以不让你添加 主键限制只能有一个
你在做数据的时候执行了一次了 在if的时候又要执行一次 是执行了2次了 你把打印那句注释掉就进去了
id设置成自增,添加的时候就不要添id了
插入了两条相同的数据67违反主键约束
违反唯一约束! 67