代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
MyBatis常用的操作
作者:
/ 发布于
2018/9/27
/
703
1.在<where>标签中为保证某一条件为true,且不影响其他判断条件。最简单的解决方式: <where> <if test="true"> GMT_MODIFY = now() </if> </where> 或者 <where> <if test="1==1"> GMT_MODIFY = now() </if> </where> 2.Oracle、MySQL插入时返回主键的操作 Oracle: <insert id="insert" parameterClass="Cont"> <selectKey keyProperty="id" resultClass="java.lang.Long" type="pre"> SELECT SEQ_CONT.NEXTVAL AS ID FROM DUAL </selectKey> insert into CONT(ID, NAME, GMT_CREATE, GMT_MODIFY) values (#{id}, #{name}, sysdate, sysdate) </insert> 注意:这边的keyProperty="id"中"id"指的是Java对象Cont中的属性,而并非数据库中CONT表的属性。 MySQL: <insert id="insert" parameterType="Role" useGeneratedKeys="true" keyProperty="roleId"> insert into role (name, create_time, update_time) values (#{name,jdbcType=VARCHAR}, now(), now()) </insert> 注意:role表的role_id字段是自动增长的,所以插入时不需要传入值;keyProperty="roleId"中"roleId"指的是Java对象Role中的属性,而并非数据库中role表的属性。 3.插入、修改时存储创建、修改时间为数据库时间 Oracle: insert into CONT(ID, NAME, GMT_CREATE, GMT_MODIFY) values (#{id}, #{name}, sysdate, sysdate) MySQL: insert into role (name, create_time, update_time) values (#{name,jdbcType=VARCHAR}, now(), now()) 4.关系运算符的处理及转义 主要处理的是小于/小于等于符号(”<“/”<=“)与XML的尖括号”<“之间的冲突。可以用以下代码解决: <where> <if test="id != null"> <![CDATA[ AND T.ID < #{id} ]]> </if> ... </where> 包含在<![CDATA[ ]]>之间即可避免 或者直接进行转义 <where> <if test="id != null"><!-- 大于号(>) --> AND T.ID >= #{id, jdbcType=BIGINT} </if> <if test="id != null"><!-- 小于号(<) --> AND T.ID <= #{id, jdbcType=BIGINT} </if> ... </where> 5.批量插入、修改、删除操作 <!-- MySQL批量插入 --> <insert id="insertBatch" parameterType="java.util.List"> insert into role_authority (role_id, authority_id) values <foreach collection="list" item="item" index="index" separator=","> (${item.roleId}, ${item.authorityId}) </foreach> </insert> <!-- MySQL、Oracle通过主键集合批量删除记录 --> <delete id="batchRemove" parameterType="java.util.List"> DELETE FROM ld_user WHERE id IN <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item} </foreach> </delete> <!-- 批量修改与批量删除类似 --> 6.模糊查询: <if test="entName != null and entName != ''"> AND t2.`name` LIKE "%"#{entName,jdbcType=VARCHAR}"%" <!-- '%${entName,jdbcType=VARCHAR}%' --> </if> 或者 <if test="voucherName != null"> AND voucher_name = CONCAT('%',#{voucherName,jdbcType=VARCHAR},'%') </if>
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3