Java代码TkMyBatis通用Mapper中新增数据时同时获取自增主键ID,与适用uuid 做主键时获取 id_tkmapper 主键id集合查询_再遇当年的博客-程序员宅基地

技术标签: 自增主键  通用Mapper  jsp  js  html  id  uuid  useGeneratedKeys  


一 . MyBatis mapper.xml文件中在xml

   1.   加入 这句 :useGeneratedKeys="true" keyProperty="ID"

       keyProperty="数据库中的主键字段名对应的实体类字段名" ;【填实体类字段名】

<insert id="insertSelective" parameterType="com.tc.lvmsm.vo.vm.Vehicle"
            useGeneratedKeys="true" keyProperty="ID">

2. 加  SELECT LAST_INSERT_ID()

<!-- 配置一个添加用户的sql语句,并且在查询之后得到用户的ID -->
	<insert id="saveUser" parameterType="com.igeek.crm.pojo.User">
		<!-- selectKey 标签实现主键返回 -->
		<!-- keyColumn:主键对应的表中的哪一列 -->
		<!-- keyProperty:主键对应的pojo中的哪一个属性 -->
		<!-- order:设置在执行insert语句前执行查询id的sql,孩纸在执行insert语句之后执行查询id的sql -->
		<!-- resultType:设置返回的id的类型 -->
		<selectKey keyColumn="id" keyProperty="id" order="AFTER"
			resultType="int">
			SELECT LAST_INSERT_ID()
		</selectKey>
		INSERT INTO `user`
		(username,birthday,sex,address) VALUES
		(#{username},#{birthday},#{sex},#{address})
	</insert>

3.不适用自增ID ,使用UUID做主键  加 SELECT uuid()

	<!-- 保存用户 使用UUID做主键 -->
	<insert id="saveUser1" parameterType="com.igeek.crm.pojo.User">
		<!-- selectKey 标签实现主键返回 -->
		<!-- keyColumn:主键对应的表中的哪一列 -->
		<!-- keyProperty:主键对应的pojo中的哪一个属性 -->
		<!-- order:设置在执行insert语句前执行查询id的sql,在执行insert语句之后执行查询id的sql -->
		<!-- resultType:设置返回的id的类型 -->
		<selectKey keyColumn="uuid" keyProperty="uuid" order="BEFORE"
			resultType="string">
			SELECT uuid()
		</selectKey>
		INSERT INTO `user1`
		(username,birthday,sex,address,uuid) VALUES
		(#{username},#{birthday},#{sex},#{address},#{uuid})
	</insert>

二.TkMyBatis通用Mapper中 在实体类的主键属性上加 注解:

     1.自增主键用法:      

     @Id

      @GeneratedValue(strategy=GenerationType.IDENTITY)

      private Integer id;   

     2.序列主键用法(适用Oracle):

   @Id

      @GeneratedValue(

        strategy = GenerationType.IDENTITY,

        Generator = "select SEQ_ID.nextval from dual"  )

       private Integer id;

谢谢赞助与支持!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_15204179/article/details/81457381

智能推荐

字符串,数组,向量_字符串类型的向量_梦铭ooo的博客-程序员宅基地

标准库类型string#include&lt;string&gt;string 定义在命名空间std中//string函数用法详解!附代码,写具体的用法! #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; using namespace std; ..._字符串类型的向量

ubuntu20.04 安装 Qt5.12_qt 5.12linux百度云_仙海寻波的博客-程序员宅基地

第一步 下载 Qt5.12.9安装包使用清华镜像进行下载:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/Qt5.12.9 百度云链接:https://pan.baidu.com/s/1dpJfoAyzR5Wm0FrFc_ZuHA提取码:t5jt第二步 安装 Qt进入安装包路径cd ~/下载安装包赋权限sudo chmod +x qt-opensource-linux-x64-5.12.9.run断开无线网开始安装。sudo ./_qt 5.12linux百度云

LTE系统信息(1)-MIB_lte mib systemframenumber_阿米尔C的博客-程序员宅基地

1.什么是MIB为了能正常接入小区,UE在完成扫频(无论是指定频点扫频还是全频段扫频,目的都是为了找到合适的中心载波频点,参考《LTE物理传输资源(3)-时频资源》)和小区同步之后(参考《LTE小区搜索-物理小区ID和同步信号PSS、SSS》),还需要继续读取小区的系统信息。系统信息是由网侧不断的重复广播的,这样无论UE什么时候开机,都能及时的获取到系统信息。LTE的系统信息被分为两大类:Mast_lte mib systemframenumber

Intellij Idea2019.3.5使用优化_idea2019.3.5补丁下载_thomas.he的博客-程序员宅基地

很多老铁都升级到最新版人Intellij Idea2019.3.5,发现和之前的还是有很多区别的。下面来说说本人的使用遇到的问题以及使用上面的优化。Intellij Idea2019.3.5优化可以支持多余的插件,如flash、google app插件等,设置--》插件管理![在这里插入图片描述](https://img-blog.csdnimg.cn/20200723110816996.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVp_idea2019.3.5补丁下载

LeetCode 每日一题547. 省份数量_喜欢下雨所以爱上雷震子的博客-程序员宅基地

547. 省份数量有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。示例 1:输入:i

记忆化搜索(4):P1074 靶形数独——有优先顺序的dfs_糖琴心的博客-程序员宅基地

P1074 靶形数独输出格式输出共 11 行。输出可以得到的靶形数独的最高分数。如果这个数独无解,则输出整数-1−1。输入输出样例输入 #1复制7 0 0 9 0 0 0 0 1 1 0 0 0 0 5 9 0 0 0 0 0 2 0 0 0 8 0 0 0 5 0 2 0 0 0 3 0 0 0 0 0 0 6 4 8 4 1 3 0 0 0 0 0 0 0 0 7 0...

随便推点

Class_weight: TypeError: unhashable type: ‘numpy.ndarray‘_class_weights = torch.from_numpy(compute_class_wei_Erwachen的博客-程序员宅基地

解决Class_weight中的报错问题_class_weights = torch.from_numpy(compute_class_weight('balanced', np.unique(

笔记_fujiaxiaoshao的博客-程序员宅基地

2017.11.08Spring Boot或Request请求参数值http://blog.csdn.net/u010399316/article/details/52913299Java设计模式汇总 http://blog.csdn.net/zhangle1hao/article/details/78124910Java BigDecimal http://blog.csdn.net/jacki...

CREATE TABLE_death_kada的博客-程序员宅基地

MySQL中create table语句的基本语法是:CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definition,...)] [table_options] [select_statement]TEMPORARY:该关键字表示用MySQL create table新建的表为临时表,此表

linux系统中 库分为静态库和,你知道linux 静态库和共享库?_陈允信的博客-程序员宅基地

1、静态库和共享库静态库和共享库(动态库),二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小。静态链接库和动态链接库的区别在于,主程序在运行前,静态链接库的链接固定写入在程序中,而动态链接库则是在每次程序运行再加载链接。2、库存在的意义库是别人写好的现有的,成熟..._共享库文件是静态库还是动态库

mysql分表分区实操_也曾梦想走天涯的博客-程序员宅基地

mysql数据表数据量大了执行分表/分区操作一:建个表CREATE TABLE test_a (id int not null auto_increment,username VARCHAR(20) not null comment’用户名’,gender CHAR(6) not null comment’性别’,mobile VARCHAR(11) not null comment’手机号码’,email VARCHAR(50) not null comment’邮箱号’,PRIMARY

推荐文章

热门文章

相关标签