mybatis 插入数据返回 -1 通常使用mybatis对数据进行增删改会进行返回值的判断, 返回值不为1时说明该条语句执行失败,不过今天遇到程序报错返回值不为1,去数据库查看却发现插入成功了,后来知道原来是因为mybatis一次对多条数据进行操作成功后返回值为 -1,而我是通过调用存储过程对数据进行的操作,同时插入了多条数据...
String sql = "com.mlxs.mybatis.test.userMapper.insertUser"; int res= sqlSession.insert(sql, "1");// 1. 2. 3. 4. 5. 6. 4、SqlSession.insert()方法: public interface SqlSession extends Closeable { int insert(String var1); int insert(String var1, Object var2); } 1. 2. 3. 4....
mybatis 插入数据返回 -1 通常使用mybatis对数据进行增删改会进行返回值的判断, 返回值不为1时说明该条语句执行失败,不过今天遇到程序报错返回值不为1,去数据库查看却发现插入成功了,后来知道原来是因为mybatis一次对多条数据进行操作成功后返回值为 -1,而我是通过调用存储过程对数据进行的操作,同时插入了多条数据...
返回的1是影响的行数,并不是自增的主键id; 想要获取自增主键id,需要通过xx.getId()方法获取,因为在mybatis中指定自增主键id封装到了对象的属性中,所以我们需要在对象中来获取 代码示例如下: <insert id="add"useGeneratedKeys="true"keyColumn="id"keyProperty="id"parameterType="user">INSERT INTO `user` (`...
的配置可能会触发一次查询,导致我们的insert语句和selectKey语句之间有其他的select语句,从而导致select last_insert_id()返回值总是为1,因为在mybatis打印的sql语句中,发现insert和select last_insert_id()之间有一些select语句,但是在mysql中测试后发现insert后面的select语句并不影响selecct last_insert_id()的返回值...
int res= sqlSession.insert(sql, "1");// 4:SqlSession.insert()方法: public interface SqlSession extends Closeable { int insert(String var1); int insert(String var1, Object var2); } SqlSession是一个接口,里面有insert方法,我们再来看一下这个接口的实现类: ...
提供检查MyBatis insert返回值是否正确的方法: 最直接的方法是检查返回值是否为1。如果是,则通常表示插入操作成功。 另外,可以通过查询数据库来验证数据是否确实被插入。 讨论MyBatis insert返回值为1时可能遇到的问题及其解决方案: 问题1:尽管insert操作返回值为1,但数据库中并没有新记录。 解决方案:检查数据库...
说明:1、< insert> 标签中没有 resultType 属性,但是 < selectKey> 标签是有的。2、order=“AFTER” 表示先执行插入语句,之后再执行查询语句。3、keyProperty=“id” 表示将自增长后的 Id 赋值给实体类中的 id 字段。4、SELECT LAST_INSERT_ID() 表示 MySQL 语法中查询出刚刚插入的记录自增长 Id。最终结果...
那个返回值1并不是主键,而是插入数据库的记录的条数。主键是自动赋值在对象中的。比如对象User,属性id为主键,name,age User user = new User();user.setName("test");user.setAge(16);调用mybatis的insert(user);返回值是1,该条记录的主键通过user.getId();即可获取。
1、< insert> 标签中没有 resultType 属性,但是 < selectKey> 标签是有的。 2、order=“AFTER” 表示先执行插入语句,之后再执行查询语句。 3、keyProperty=“id” 表示将自增长后的 Id 赋值给实体类中的 id 字段。 4、SELECT LAST_INSERT_ID() 表示 MySQL 语法中查询出刚刚插入的记录自增长 Id。