MyBatis Insert获取自增主键ID
来源:互联网 发布:mac py终端指的是什么 编辑:程序博客网 时间:2024/04/30 09:05
使用Hibernate的时候,insert插入可以很简单的获取自增主键ID。而使用MyBatis有insert select delete等操作,并没有直接获取自增主键的操作,需要手动配置。
1:public interface IAdminDao
/** * 插入Admin * @param admin * @return */public Integer insertAdmin(Admin admin);
2:AdminDao.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.dms.dao.IAdminDao"><insert id="insertAdmin" parameterType="Admin" useGeneratedKeys="true" keyProperty="id"> insert into admin(email,password) values(#{email},#{password})</insert></mapper>
重点是在insert中加入 useGeneratedKeys="true" keyProperty="id",前者表示使用自增主键,后者指定主键是id
3:AdminService
/** * * @author zhao * */@Servicepublic class AdminService implements IAdminService {private static final Logger LOGGER = LoggerFactory.getLogger(AdminService.class);@Autowiredprivate IAdminDao adminDao;public voidregister(Admin admin){<span style="white-space:pre"></span>adminDao.insertAdmin(admin);Integer adminId = admin.getId();<span style="white-space:pre"></span>System.out.println(adminId);}}
注:虽然adminDao.insertAdmin(Admin)的返回值是Integer,但这个返回值并不是自增主键ID,而是插入成功的数据条数,插入一条数据就返回1.
要想获取自增ID,需要使用Admin , Admin.getId()便可以获取ID了,这个思路类似于Hibernate,对象持久化之后,我们可以通过持久化对象获取主键。
所以上面的IAdminDao的insertAdmin(Admin)方法可以改为void ,这样就不会有歧义了。可见我们并不是获取的插入的返回值,而是插入成功后数据被封装到持久化对象中了。
0 0
- MyBatis Insert获取自增主键ID
- Mybatis实现insert获取自增id
- mybatis获取自增主键id
- Mybatis中的insert获取自增主键的值
- Mybatis下insert语句后获取自增id
- Spring jdbcTemplate 获取insert后主键自增的表的主键id
- mybatis insert获取主键
- 使用mybatis进行insert操作时返回自增的主键id
- MyBatis+MySQL 进行insert之后可获取主键ID
- Mybatis insert返回主键ID
- mybatis获取自增主键
- Mybatis insert时返回自增id
- mybatis - 获取自增ID
- mybatis- 获取自增ID
- MyBatis获取自增ID
- mybatis通过SCOPE_IDENTITY()获取insert语句的自增主键时(sqlserver)
- 获取insert的自增ID
- mybatis的insert元素属性详解 及 在insert插入数据获取主键id的值
- 对链表排序
- Android Menu菜单
- Centos 学习之路
- 带权并查集
- Java之静态内部类(static class)
- MyBatis Insert获取自增主键ID
- XML解析--小项目实战(联系人管理系统)
- navigator.geolocation
- ORACLE sql语法的表示问题
- Linux常用命令
- 女友校招笔试编程题:网易测试岗-买苹果和求最大奇约数
- Android Fragment中嵌套Fragment,不显示view
- 每队顶点之间的最短路径(弗洛伊德算法)
- 点击 datagridview header 发生崩溃