mybatis 插入递增主键——abc201611090001 abc201611090002
来源:互联网 发布:vb.net和c#区别 编辑:程序博客网 时间:2024/06/08 15:16
mybatis 插入递增主键——abc201611090001 abc201611090002
其实,这个问题已经有解决方案了,但是不是很优雅,现在有一种更优雅的方式。
先介绍一下问题:主键是varchar类型的,存储的内容是这样的abc+时间+流水号。如果按照我上一篇文章介绍的就是通过代码进行一次查询(mybatis插入流水号主键)的到最大的id,然后在进行计算,再次插入。
下面介绍的方式直接通过mybatis进行处理,不需要再service层进行处理了。
首先需要介绍几个mysql中的一些函数:
1、concat
select concat('aabb','124ac','ca');
2、substr
select substr('adbc',1,3);
3、date_format
select date_format(now(),'%Y-%c-%d %h:%i:%s');
4、LAPD
select LPAD(132,4,'0');
下面进入正题:
首先在mybatis的插入函数中做如下处理:
<insert id="inserttestTable" parameterType="com.xueyou.ssm.model.Ttee"> <selectKey keyProperty="id" resultType="string" order="BEFORE"> select IFNULL(concat('abc',date_format(now(),'%Y%c%d'),LPAD(substr(max(id),12,4)+1,4,'0')),concat('abc',date_format(now(),'%Y%c%d'),'0001')) as newID from testtable where id like concat('abc',date_format(now(),'%Y%c%d'),'%'); </selectKey> INSERT INTO testtable(id,name) VALUE (#{id},#{name}) </insert>
对应的dao层
public int inserttestTable(Ttee ttee);
这里需要model层提供的pojo类
package com.xueyou.ssm.model;/** * Created by wuxueyou on 2016/11/8. */public class Ttee { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
这样在进行添加记录时就能直接进行按照流水号添加了。
0 0
- mybatis 插入递增主键——abc201611090001 abc201611090002
- Mybatis——<selectKey>生成主键/获取插入数据主键
- mybatis 插入返回主键
- 【MyBatis框架点滴】——mybatis插入不显示,但是主键自增了?
- 【MyBatis框架点滴】——mybatis插入数据返回主键(mysql、oracle)
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- mybatis获取插入数据主键
- mybatis插入后返回主键
- mybatis插入流水号主键
- MyBatis插入数据返回主键
- mybatis mysql插入返回主键
- mybatis插入后主键返回
- MyBatis插入后主键回填
- MyBatis批量插入返回主键
- mybatis插入数据返回主键
- MyBatis插入并获取主键
- mybatis返回主键,批量插入
- Mybatis mybatis插入数据返回主键
- TypeError: view must be a callable or a list/tuple in the case of include().
- HDU 1664 Different Digits (数论 -- 鸽笼原理 + BFS搜索 + 余数判重)
- 常见对象_把int数组拼接成字符串的案例改进版
- ubuntu 源码安装java
- FCN 简单梳理
- mybatis 插入递增主键——abc201611090001 abc201611090002
- log信息输出到文件
- MVC框架的简单描述
- S5PV210体系结构
- android 中的色彩矩阵和图像分析
- 关于DuiLib的CRichEditUI控件在win8下输入中文乱码的解决方案
- 本人java面试中问答的问题分享
- zxing打开扫码页面,黑屏问题
- Spring优点