您的位置:首頁技術文章
文章詳情頁

java - mybatis如何實現獲取新增得id

瀏覽:126日期:2023-10-21 17:23:02

問題描述

<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方法

標簽: java
相關文章:
国产综合久久一区二区三区