java - Comment obtenir l'identifiant nouvellement ajouté dans Mybatis
天蓬老师
天蓬老师 2017-06-30 09:53:48
0
6
1146

<insert id="saveCustomer" 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 layer
public int saveCustomer(CustomerEntity cs);
Cette méthode renvoie toujours 1. La valeur de object.id est toujours vide. La base de données est 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());
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(6)
伊谢尔伦

@福生百记 Ajoutez useGeneratedKeys="true"

sur cette base
学霸

Ce que cette méthode renvoie est en fait le nombre d'enregistrements concernés.
Vous pouvez obtenir directement l'ID de la classe d'entité après l'insertion.

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());
淡淡烟草味

Pouvons-nous jeter un œil à la classe d'entité ?

仅有的幸福

useGeneratedKeys="true" keyProperty="id" Dans la configuration XML, keyProperty est la clé primaire. Vérifiez si votre numéro de données est défini sur id comme clé primaire et le point à incrémenter automatiquement, s'il est défini. insert est exécuté, la valeur de la clé primaire sera reflétée dans la clé primaire de votre classe d'entité

扔个三星炸死你

<insert id="save" ParameterType="atyy.model.ArticleCategoryPO" useGeneratedKeys="true">
</insert>
Ajoutez simplement un attribut useGeneratedKeys="true"

为情所困

1. L'identifiant de la base de données doit être auto_increment
2. Configurez useGeneratedKeys="true" et keyProoerty
3 La valeur que vous obtenez en appelant la méthode d'interface du mappeur, c'est-à-dire que le total 1 que vous obtenez est le nombre d'enregistrements affectés. vous souhaitez obtenir l'identifiant de l'objet, veuillez cliquer et utiliser la méthode getter correspondante

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal