不同数据库下的Mybatis映射文件的写法
来源:互联网 发布:电视盒直播软件下载 编辑:程序博客网 时间:2024/06/06 03:08
C#项目,oracle 、mysql 、sqlserver数据库下,mybatis的映射文件里,一些常用功能的写法
字符串模糊匹配
oracle
{colume_name} Like '%' || #{para_name}# || '%')
mysql
USER_NAME Like '%$UserName$%'
sqlserver
USER_NAME Like '%' + #UserName# + '%'
数据库分页
oracle
<select id="ManagementNewsInfo.Select_ByPage" resultMap="ManagementNewsInfoResult"> SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(ORDER BY CREATE_TIME DESC) AS ROWINDEX FROM MANAGEMENT_NEWS_INFO <dynamic prepend="WHERE"> <isNotEmpty prepend="AND" property="TITLE"> (TITLE Like '%' || #TITLE# || '%') </isNotEmpty> </dynamic> ) T WHERE T.ROWINDEX > #StartNumber# AND (#EndNumber#)>=T.ROWINDEX </select>StartNumber 和 EndNumber就是分页的起止索引。
mysql
<select id="DealRecordInfo.Search_ByPage" resultMap="DealRecordInfoResult"> <![CDATA[ SELECT * FROM ( SELECT *FROM deal_record_info ]]> <dynamic prepend="WHERE"> …… </dynamic> <![CDATA[ ) T ORDER BY $sort$ $order$ limit #PageSize# offset #PageIndex# ]]> </select>
sort为排序字段名
order为 desc/asc
PageSize为页面元素个数
PageIndex为分页索引 (从0开始)
sqlserver
<select id="SysUser.Search_ByPage" resultMap="SysUserResult"> SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(ORDER BY ID) AS ROWINDEX FROM SYS_USER <dynamic prepend="WHERE"> …… </dynamic> ) T WHERE T.ROWINDEX > #StartNumber# AND (#EndNumber#)>=T.ROWINDEX </select>StartNumber 和 EndNumber就是分页的起止索引。
动态传入排序字段如下写法
SELECT *,ROW_NUMBER() OVER( <dynamic prepend="order by"> <isEqual prepend="order by" property="orderByDes" compareValue="1"> A.LAST_COMMENT_TIME desc </isEqual> <isEqual prepend="order by" property="orderByDes" compareValue="2"> A.NO_OF_COMMENT desc </isEqual> </dynamic> ) AS ROWINDEX根据传入的orderByDes的值动态排序
时间比较
oracle
to_date(#{para_time}#,'yyyy-mm-dd')>={colume_name}使用to_date函数完成时间比较
mysql
CREATE_TIME BETWEEN #strDateFrom# and #strDateTo#利用between比较时间段
sqlserver
CREATE_TIME >=#startTimeFrom#startTimeFrom为传入的时间字符串
批量处理
oracle
待尝试
mysql
批量插入
<insert id="DealRecordInfo.InsertBatch" parameterClass="ArrayList"> INSERT INTO {table_name}({colume_name}) VALUES <iterate conjunction="," open="" close=""> (#[].{colume_name}#) </iterate> </insert>
批量更新
<update id="DealRecordInfo.UpdateBatch" parameterClass="DealRecordInfo"> update {table_name} set {colume_name}= #{para_name}# where ID in <iterate property="IdList" conjunction="," open="(" close=")"> #IdList[]# </iterate> </update>IdList[]为传入的数组
sqlserver
待尝试 0 0
- 不同数据库下的Mybatis映射文件的写法
- mybatis映射文件mapper.xml的写法。
- Mybatis 引用不同映射文件的结果集
- Mybatis映射文件写法学习
- MyBatis学习(三):解析MyBatis的SQL映射XML文件写法和使用原理
- mybatis 分页插件拦截注解不同版本不同的写法
- mybatis 自增主键配置(不同类型的数据库,代码写法不同)
- mybatis 映射文件中bean中包含其他bean的写法
- MyBatis的XML映射文件、映射器
- mybatis的xml映射文件**
- JDBC连接不同数据库的写法
- CSS在不同IE下的写法
- 不同IE下的css写法
- Java 文件路径的不同写法
- java文件路径的不同写法
- 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同
- mybatis的数据库映射的部分
- mybatis映射文件的文件头
- 【Unity】Kinect入门——项目搭建
- 关于编程语言的思考——编译型和解释型
- 递归实现二叉树的三种遍历
- vsftpd的配置dns反向解析问题
- C#第四章
- 不同数据库下的Mybatis映射文件的写法
- 清空文件夹下所有log
- MongoDB的安装
- Ethercat开源主站Etherlab----收发帧过程(Generic 驱动)
- 将当前列表<select>中选中的值<option>移动到目标列表
- STM32---ADC
- 带你玩转Visual Studio——带你了解VC++各种类型的工程
- linux2.6.28-tty设备驱动学习(二) tty设备驱动详解
- uC/OS iii(三)任务管理之任务状态