mybatis如何实现mysql数据库的主键返回主键返回
来源:互联网 发布:三星5830root软件 编辑:程序博客网 时间:2024/06/05 04:54
mybatis框架要实现mysql数据库的主键返回只需要在mybatis的mapper映射文件中进行设置即可
######################################################################################################################################
通过修改sql映射文件,可以将mysql自增主键返回:
<insertid="insertUser"parameterType="cn.itcast.mybatis.po.User">
<!-- selectKey将主键返回,需要再返回 -->
<selectKey keyProperty="id"order="AFTER"resultType="java.lang.Integer">
SELECT LAST_INSERT_ID();</selectKey>
insert into user(username,birthday,sex,address)
values(#{username},#{birthday},#{sex},#{address});
</insert>
添加selectKey实现将主键返回
keyProperty:返回的主键存储在pojo中的哪个属性
order:selectKey的执行顺序,是相对与insert语句来说,由于mysql的自增原理执行完insert语句之后才将主键生成,所以这里selectKey的执行顺序为after
resultType:返回的主键是什么类型
LAST_INSERT_ID():是mysql的函数,返回auto_increment自增列新记录id值。
需要增加通过select uuid()得到uuid值
<insert id="insertUser"parameterType="cn.itcast.mybatis.po.User">
<selectKey resultType="java.lang.String" order="BEFORE"
keyProperty="id">
select uuid()
</selectKey>
insertinto user(id,username,birthday,sex,address)
values(#{id},#{username},#{birthday},#{sex},#{address})
</insert>
注意这里使用的order是“BEFORE”
####################################################################################################################################
mapper映射文件案例
<?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">
<!-- namespace是命名空间,作用sql语句的隔离,后面还有重要作用
#{}作用就是占位符,相当于jdbc的“?”
parameterType:查询的参数类型
resultType:查询结果的数据类型,如果时候pojo应该给全路径。
-->
<mapper namespace="test">
<select id="getUserById" parameterType="int" resultType="cn.itheima.mybatis.po.User">
SELECT * FROM `user` WHERE id=#{id};
</select>
<!-- 如果查询结果返回list, resultType设置为list中一个元素的数据类型
${}字符串拼接指令
-->
<select id="getUserByName" parameterType="string" resultType="cn.itheima.mybatis.po.User">
SELECT * FROM `user` WHERE username LIKE '%${value}%'
</select>
<!-- 参数时候pojo时,#{}中的名称就是pojo的属性 -->
<insert id="insertUser" parameterType="cn.itheima.mybatis.po.User">
<!-- keyProperty:对于pojo的主键属性
resultType:对应主键的数据类型
order:是在insert语句执行之前或者之后。
如果使用uuid做主键,应该先生成主键然后插入数据,此时应该使用Before
-->
<selectKey keyProperty="id" resultType="int" order="AFTER">
SELECT LAST_INSERT_ID()
</selectKey>
INSERT into user (username,birthday,sex,address)
values (#{username}, #{birthday}, #{sex}, #{address})
</insert>
<!-- 删除用户 -->
<delete id="deleteUser" parameterType="int">
DELETE from user WHERE id=#{id1}
</delete>
<!-- 修改用户信息 -->
<update id="updateUser" parameterType="cn.itheima.mybatis.po.User">
update user set username=#{username} WHERE id=#{id}
</update>
</mapper>
- mybatis如何实现mysql数据库的主键返回主键返回
- Mybatis+Mysql返回主键
- mybatis 主键的返回
- mybatis主键的返回
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- Mybatis+Mysql返回插入的主键ID
- MyBatis+MySQL 返回插入的主键ID
- Windows和Ubuntu双系统,修复UEFI引导的两种办法
- dairy 12.10 学期总结
- 设置京东搜索框状态栏渐变
- 工厂方法以及spring对工厂方法的支持
- HTML基础(6. 超链接与锚点)
- mybatis如何实现mysql数据库的主键返回主键返回
- 111
- 【20171210】用java实现简易贪吃蛇
- CSS3边框
- 剑指offer之二叉树的下一个结点
- 提交代码
- 牛客网程序设计赛低年级组之数圈圈
- 封装OkHttpUtil
- kuangbin专题五 并查集 POJ3038 How Many Answers Are Wrong