提供检查MyBatis insert返回值是否正确的方法: 最直接的方法是检查返回值是否为1。如果是,则通常表示插入操作成功。 另外,可以通过查询数据库来验证数据是否确实被插入。 讨论MyBatis insert返回值为1时可能遇到的问题及其解决方案: 问题1:尽管insert操作返回值为1,但数据库中并没有新记录。 解决方案:检查数据库...
例如,以下代码将使用selectKey元素来返回插入数据时生成的主键值:XML <insert id="insertUser" parameter...
insert INTO MyTable(createModel) VALUES(#{createModel}) </insert> 在测试类中写了这个 int count = sqlSession.getMapper(ComputerMapper.class).add(com1); 结果是count=1 但是在数据库中却没有找到插入的数据,找了一下,原来是写 factory.openSession(false); 的时候,设置了没有自动提交 在返回count后面...
其实,insert的返回值还是代表啦受影响的行数,而插入对象的主键已经赋给了插入的对象 ,我们通常是调用sqlSession的insert方法来进行插入操作,同时会传递一个要插入的对象,但是主键属性为空如下所示: sqlSession.insert("com.xxx.xxx.save", o); 假如我们的配置没有问题,那么该方法执行后,如果在这行代码后面去打印o...
1. 想要获取自增主键id,应该通过对象的getId()方法,而并不是insert的返回值,insert的返回值表示的是影响行数 2.在mapper.xml中:useGeneratedKeys="true"、keyProperty="id",这两个属性的作用: 共同决定了sql执行后,会将主键封装到id属性上; 自增主键封装到了对象的id属性上了,那么想要获取,直接调用对象的getId...
mybatis中insert返回值为1,但数据库却没有数据 今天在利用Mybatis框架进行数据库插入时,遇到了好几个超级奇怪的问题,也可能是我真的太菜鸡了。做个记录吧~ 1. 排除数据库中表设置错误 使用show variables like '%autocommit%';查看表是否设置自动提交
今天在使用数据库的时候,遇到一个场景,即在插入数据完成后需要返回此数据对应的自增主键id,但是在使用Mybatis中的generatedKey且确认各项配置均正确无误的情况下,每次插入成功后,返回的都是1,而不是最新的自增Id。 终于凭借着一次Debugg发现的问题,原来在使用Mabatis中的insert或者insertSelective方式插入时,如使用int...
1.Mapper的写法,返回的这个int是受影响的行号 int insertNewUser(User newUser); 1. 2.xml的写法 <!--返回主键 形式1 --> <insert id="saveReturnPK1" parameterType="cn.lyn4ever.bean.User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO `test`.`tb_user`(`username`, age) VALUES(#{...
那个返回值1并不是主键,而是插入数据库的记录的条数。主键是自动赋值在对象中的。比如对象User,属性id为主键,name,age User user = new User();user.setName("test");user.setAge(16);调用mybatis的insert(user);返回值是1,该条记录的主键通过user.getId();即可获取。
实际上,只有select会自动提交,insert、update、delete并不会自动提交,所以问题在于代码 并未设置一个手动提交。 2. 两种解决办法 2.1 利用commit 增加一行代码以后,发现并没有什么用,证明问题不在这。运行后数据库中仍然无数据。 实际上,并不是commit方法不管用,而是添加代码位置不对,应该是session中有了相应指令再...