java - mybatis如何实现获取新增得id
问题描述
<insert parameterType='com.xiaonatech.dsx.entity.CustomerEntity' useGeneratedKeys='true' keyProperty='policyID'>
insert into customer (certType,code,password,name,mobile,effDate,expDate,address,createID,createTime,updateID,updateTime) values (#{certType},#{code}, #{password}, #{name}, #{mobile}, #{effDate},#{expDate},#{address},#{createID},#{createTime} ,#{updateID},#{updateTime})</insert>
dao层public int saveCustomer(CustomerEntity cs);这个方法返回得一直是1。 对象.id得值 一直是空。数据库是mysql CustomerEntity applyRecord = new CustomerEntity();
applyRecord.setCertType('0'); applyRecord.setCode('423565462256'); applyRecord.setPassword('123456'); applyRecord.setName('sds'); applyRecord.setMobile('12345678978'); applyRecord.setCreateID('150'); applyRecord.setUpdateID('150'); applyRecord.setUpdateTime(new Date()); int i = dao.saveCustomer(cs); System.out.println('i========='+i+' id================'+applyRecord.getCarOwnerID());
问题解答
回答1:@浮生百记 在其基础上加上useGeneratedKeys='true'
回答2:这个方法返回的实际是影响的记录数。你insert之后直接去取实体类的id即可。
ApplyRecord applyRecord = new ApplyRecord();applyRecord.setAccount('1234');applyRecord.setCode('123');Timestamp now = new Timestamp(System.currentTimeMillis());applyRecord.setGmtCreate(now);applyRecord.setGmtModified(now);int i = applyRecordDao.insert(applyRecord);logger.info('{}',applyRecord.getId());回答3:
实体类可以看下么
回答4:useGeneratedKeys='true' keyProperty='id' xml配置中keyProperty为主键 你看你的数据数是不是设id为主键并设置期为自增,如果设置执行完insert后,主键的值就会反射到你实体类的主键中
回答5:<insert parameterType='atyy.model.ArticleCategoryPO' useGeneratedKeys='true'></insert>加入一个属性就行了useGeneratedKeys='true'
回答6:1.数据库id必须是auto_increment2.配置useGeneratedKeys='true'以及keyProoerty3.你调用mapper接口的方法得到的数值,也就是总拿到的1是影响的记录数,要想拿到对象的id,请点用对应的getter方法
相关文章:
1. 正在使用electron和node.js做桌面应用,需要实时监听是否有网络连接,node或者electron是否可以做到2. dockerfile - 我用docker build的时候出现下边问题 麻烦帮我看一下3. android glide asbitmap 在baseadpter中的问题4. python 计算两个时间相差的分钟数,超过一天时计算不对5. node.js - express框架,设置浏览器从缓存中读取静态文件,只有js从缓存中读取了,css还有一些图片为何没有从缓存中读取?6. 做Redis集群的时候,可不可以将Master实例和Slave实例放在一个主机当中?7. python - flask post提交timestamp不能作为参数,这是为什么?8. 前端 - @media query 使用出现的问题?9. java - Spring boot 读取 放在 jar 包外的,log4j 配置文件,系统有创建日志文件,不写入日志信息。10. java - 如何点击按钮,重新运行(我是初学者)?

网公网安备