mybatis查询结果某些属性无法获取

今天遇到了一个问题,关于mybatis查询结果无法取某个属性值的,先记录一下


用select根据Id查询结果时,发现id没有获取到

根据id查询没有获取到id
这是sql语句
在这里插入图片描述
后来发现如果name属性改成_name之后,name属性也无法获取,所以应该是_id命名不规范导致无法正常set

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MyBatis中,修改完一条数据后可以通过以下两种方式获取修改的ID: 1. 使用数据库自增主键 如果你在数据库中使用了自增主键,那么在执行修改操作之前,你需要先在对应的mapper.xml文件中设置主键自动生成: ```xml <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users (name, age, gender) VALUES (#{name}, #{age}, #{gender}) </insert> ``` 在这个例子中,我们设置了keyProperty属性为id,表示我们需要将自动生成的主键ID设置到User对象的id属性中。 然后在执行修改操作后,就可以通过User对象的id属性获取修改的ID: ```java SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setId(1); user.setName("Tom"); user.setAge(20); user.setGender("male"); int rows = sqlSession.update("updateUser", user); if (rows > 0) { System.out.println("修改成功,修改的ID为:" + user.getId()); } sqlSession.commit(); } finally { sqlSession.close(); } ``` 2. 使用数据库返回主键 如果你在数据库中没有设置自增主键,那么可以通过在mapper.xml中设置useGeneratedKeys和keyProperty属性获取数据库返回的主键: ```xml <insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="id"> INSERT INTO users (name, age, gender) VALUES (#{name}, #{age}, #{gender}) </insert> ``` 在执行修改操作后,可以通过User对象的id属性获取修改的ID: ```java SqlSession sqlSession = sqlSessionFactory.openSession(); try { User user = new User(); user.setId(1); user.setName("Tom"); user.setAge(20); user.setGender("male"); int rows = sqlSession.update("updateUser", user); if (rows > 0) { System.out.println("修改成功,修改的ID为:" + user.getId()); } sqlSession.commit(); } finally { sqlSession.close(); } ``` 需要注意的是,使用数据库返回主键的方式,需要数据库支持返回主键功能,如果你使用的是某些老版本的数据库,可能不支持该功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值