MyBatis生成UUID的实现
1.<selectKey>标签属性说明
- keyProperty:设置需要自动生成键值的列
- order:可选值BEFORE和AFTER,设置为BEFORE会先执行selectKey语句,设置keyProperty属性,再执行insert语句;设置为AFTER会先执行insert语句再执行selectKey语句
- resultType:结果类型,MyBatis 通常可以自己检测到,但这并不影响给它一个确切的类型。MyBatis 允许使用任何基本的数据类型作为键值,也包括String 类型。
- statementType:支持STATEMENT、PREPARED 和CALLABLE 语句类型,分别对应Statement, PreparedStatement 和CallableStatement
2.XML方式(mysql数据库为例)
使用 <selectKey>标签,keyProperty设置生成的UUID所绑定的属性,如设置为id,即会将值绑定到参数对象User的id属性上;order属性设置为BEFORE,先执行selectKey语句
<insert id="save" parameterType="User"> <selectKey keyProperty="id" resultType="string" order="BEFORE"> select replace(uuid(), '-', '') as id from dual </selectKey> insert into t_user(id, user_sex) values( #{id}, #{user_sex} ) </insert>
3.注解方式
使用@SelectKey注解,属性和<selectKey>标签类似。before属性设置为true,类似于<selectKey>标签order属性设置为BEFORE
@Insert("insert into t_user(id, user_sex) values(#{id}, #{user_sex})") @SelectKey(keyProperty = "id", resultType = String.class, before = true, statement = "select replace(uuid(), '-', '') as id from dual") public int save(User user);
测试代码:
User user = new User(); user.setUser_age(22); user.setUser_sex(1); int count = userMapper.save(user); System.out.println("count:" + count); System.out.println("id:" + user.getId());
到此这篇关于MyBatis生成UUID的实现的文章就介绍到这了,更多相关MyBatis生成UUID内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
mybatis-plus id主键生成的坑
简要说明 由于mybatis-plus会自动插入一个id到实体对象, 不管你封装与否, 所以有时候导致一些意外的情况发生 默认是生成一个长数字字符串(编码不同可能结尾带有字母) 错误 ested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property 'id' of 'class com.xxx' with value '1110423703487479810' Cause: ja
-
详解在IDEA中使用MyBatis Generator逆向工程生成代码
本文介绍一下用Maven工具如何生成Mybatis的代码及映射的文件. 一.配置Maven pom.xml 文件 在pom.xml增加以下插件: <build> <finalName>zsxt</finalName> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-pl
-
mybatis-plus主键id生成、字段自动填充的实现代码
一.主键id的生成 数据库表里通常都会有一个主键id,来作为这条数据的唯一标识. 常见的方式 1.数据库自动增长 这种很常见了,可以做到全库唯一.因为id是天然排序的,对于涉及到排序的操作会很方便. 2.UUID 上面的自动增长,虽然简单,但是对于分表这样的操作来说就比较麻烦.因为你在第二张插入数据的时候,需要拿到上一张表最后一个数据的id. UUID则不同,每次都一个随机唯一的值,不过因为是随机,所以也就没有排序了. 3.redis redis也可以用来生成id,利用redis的原子操作.好处
-
MyBatis获取数据库自生成的主键Id详解及实例代码
MyBatis获取数据库自生成的主键Id详解及实例代码 在使用MySQL数据库时我们一般使用数据库的自增主键自动产生主键.如果在插入主表时,我们需要同时插入从表的数据,这时我们通常需要知道主表插入时自动产生的主键Id值. 下面介绍使用MyBatis进行插入时,如何同时获取数据库自生成的主键: 1.XML配置文件 <insert id="insert" parameterType="Person" useGeneratedKeys="true"
-
IDEA Maven Mybatis generator 自动生成代码(实例讲解)
IDEA Maven Mybatis generator 自动生成代码的实例讲解 一.安装配置maven以及在Idea中配置maven 安装过程步骤可以看上面的博文,里面介绍得很详细. 二.建数据表 DROP TABLE IF EXISTS `t_user`; CREATE TABLE `t_user` ( `id` varchar(100) NOT NULL, `username` varchar(20) DEFAULT NULL, `password` varchar(20) DEFAULT
-
IDEA MyBatis Plugins自动生成实体类和mapper.xml
前言 如何下载和使用MyBatis Generator 插件,只说代码,不讲感情.如果有问题还请多多指点. 开发环境 开发工具:IntelliJ IDEA 2018.1.1 x64 dk版本:1.8.0_171 工程构建工具:maven 版本3.2.5 数据库 mysql IDEA 下载MyBatis Generator 插件 1.首先在File--Settings--点击Plugins,搜索框中搜索mybatis,选择mybatis-plugins,点击安装(由于我的已经安装过,所以没有绿色的
-
MyBatis生成UUID的实现
1.<selectKey>标签属性说明 keyProperty:设置需要自动生成键值的列 order:可选值BEFORE和AFTER,设置为BEFORE会先执行selectKey语句,设置keyProperty属性,再执行insert语句:设置为AFTER会先执行insert语句再执行selectKey语句 resultType:结果类型,MyBatis 通常可以自己检测到,但这并不影响给它一个确切的类型.MyBatis 允许使用任何基本的数据类型作为键值,也包括String 类型. stat
-
tk.mybatis实现uuid主键生成的示例代码
引入依赖 <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-starter</artifactId> <version>2.0.2</version> </dependency> 1.创建一个GenId的实现类 package com.xiaobu.base.entity; import tk.mybatis.ma
-
使用Ruby on Rails和PostgreSQL自动生成UUID的教程
Rails 4 能原生态的支持Postgres 中的UUID(Universally Unique Identifier,可通用的唯一标识符)类型.在此,我将向你描述如何在不用手工修改任何Rails代码的情况下,用它来生成UUID. 首先,你需要激活Postgres的扩展插件'uuid-ossp': class CreateUuidPsqlExtension < ActiveRecord::Migration def self.up execute "CREATE EXTENSION \&
-
用JS生成UUID的方法实例
用JS生成UUID的方法实例 <!DOCTYPE html> <html> <head> <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"> </script> <script> var id=getUuid(); $(document).ready(function(){ $("p").click(function(
-
PHP中生成UUID自定义函数分享
UUID 全称是 Universally unique identifier,它是一种识别符,使用任意的计算机都可以生成,不需要一个中央数据库进行管理,即可以保证几乎没有重复的几率.而 UUID 的值域之大,据说给世界上每一粒沙子分配一个 UUID,也不会有重复的. 最近在改 WordPress 的代码,需要用到 UUID.但是,PHP 中居然没有生成 UUID 的函数,只好自己写一个. if (!function_exists('com_create_guid')) { function co
-
java实现随机生成UUID
java实现随机生成UUID public class IDGenerator { private static long num=0; /** * 随机生成UUID * @return */ public static synchronized String getUUID(){ UUID uuid=UUID.randomUUID(); String str = uuid.toString(); String uuidStr=str.replace("-", ""
-
JS实现点击生成UUID的方法完整实例【基于jQuery】
本文实例讲述了JS实现点击生成UUID的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net 用JS生成UUID的方法实例</title> <script src="http://libs.baidu.com/jquery/2.0
-
Laravel自动生成UUID,从建表到使用详解
gitHub地址: https://github.com/EmadAdly/laravel-uuid.git 1.安装依赖 composer require emadadly/laravel-uuid 2.然后在config/app.php的providers里添加ServiceProvider 'providers' => [ ... Emadadly\LaravelUuid\LaravelUuidServiceProvider::class, ], 3.然后根目录执行 php artisan
-
浅谈JAVA如何生成UUID唯一标识
1.UUID 简介 UUID 含义是通用唯一识别码 (Universally Unique Identifier),这是一个软件建构的标准. 也是被开源软件基金会 (Open Software Foundation, OSF)的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分. UUID 的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定. 如此一来,每个人都可以建立不与其它人
-
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
utils/index,.js /** * 生成UUID * @param withSeparator 是否有分割符 * @returns {string} */ export function generateUUID(withSeparator = true) { let d = new Date().getTime() if (window.performance && typeof window.performance.now === 'function') { d += perf
随机推荐
- 详解angularjs结合pagination插件实现分页功能
- JSP向后台传递参数的四种方式总结
- AngularJs 弹出模态框(model)
- PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
- 初学者易上手的SSH-struts2 01环境搭建(图文教程)
- ThinkPHP学习笔记(一)ThinkPHP部署
- Linux下安装Python3和django并配置mysql作为django默认服务器方法
- 实现UTF8转换GB2312国标码的asp代码
- 举例详解Java编程中HashMap的初始化以及遍历的方法
- 基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
- jQuery实现简单隔行变色的方法
- javascript简单实现类似QQ头像弹出效果的方法
- Windows“安全模式”妙用全接触
- C#通过DataSet读写xml文件的方法
- C#中日期时间的简单操作
- vue中,在本地缓存中读写数据的方法
- Linux 创建修改删除用户和组的方法
- 详解VSCode配置启动Vue项目
- 利用不到200行代码写一款属于你自己的js类库
- SpringBoot 2.0 整合sharding-jdbc中间件实现数据分库分表