mybatis 配置文件mysql的常用语句写法总结
来源:互联网 发布:php 调用外部网页模板 编辑:程序博客网 时间:2024/06/06 07:13
mybatis 配置文件mysql常用语句写法总结
1.添加语句
<insert id="insert" parameterType="com.baidu.bean.AppAccountBean">
insert into 表名
(account,pass,operate,create_date,remark)
values(
#{account,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR},
#{operater,jdbcType=VARCHAR},
now(),
#{remarks,jdbcType=VARCHAR}
)
</insert>
2.批量添加语句
<insert id="insert" parameterType="java.util.List">
insert into 表名(
delete_power,
create_date,
update_date,
remarks,
permission_group_code
)
values
<foreach collection="list" item="item" index="index" separator =",">
(
#{item.deletePower},
(select now() as createDate from dual),
(select now() as updateDate from dual),
#{item.remarks},
#{item.permissionGroupCode}
)
</foreach>
</insert>
3.删除语句
<delete id="delete" parameterType="String">
delete from 表名 where cs_admin_name = #{adminName}
</delete>
4.批量删除语句
<delete id="delete" parameterType="java.util.List">
delete from
表名
where
cs_admin_name
in
<foreach open="(" close=")" collection="list" item="item" index="index" separator=",">
#{item.adminName}
</foreach>
</delete>
5.修改语句
<update id="update" parameterType="com.baidu.pojo.HttpProjectPojo" >
UPDATE
表名
SET
<if test="state !=null and state !=''">
STATE = #{state} ,
</if>
<if test="isPaid !=null and isPaid !=''">
IS_PAID = #{isPaid} ,
</if>
UPDATE_DATE = sysdate()
WHERE
1=1
<if test="proNumber !=null and proNumber !=''">
AND PRO_NUMBER = #{proNumber}
</if>
</update>
6.批量修改语句
<update id="Update" parameterType="java.util.List" >
<foreach collection="list" item="item" index="index" separator=";">
update
表名
set
<![CDATA[material_num = material_num + #{item.materielNum} , ]]>
update_date = now()
where
pro_number = #{item.proNumber}
and
material_code = #{item.materielCode}
</foreach>
</update>
7.查询语句
<select id="select" parameterType="java.util.Map" resultType="com.baidu.pojo.MaterialOrderPojo">
select
mo.id,
date_format(mo.create_date,'%Y-%m-%d %H:%i:%s') as createDate,
date_format(mo.update_date,'%Y-%m-%d %H:%i:%s') as updateDate,
mo.remark as remarks,
mo.state as state
from
表名 mo
where
date_format(trunc(mo.create_date),'%Y-%m-%d') = date_format(trunc(now()),'%Y-%m-%d')
</select>
8.查询表里面的下一个自增的id
<select id="selectNextId" resultType="java.lang.Integer">
select AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_NAME = '表名';
</select>
9.in子查询语句
<select id="select" parameterType="java.util.Map" resultType="com.baidu.pojo.PackageDetailedPojo">
select
d.id as id,
b.id as packageId,
b.package_no as packageNo,
d.material_num as materialNum
from
表1 d
left join
表2 b
on
b.package_no=d.package_no
left join
表3 mp
on
mp.material_code = d.material_code
where
d.state = '1'
<if test="packageId != null and packageId != ''">
and b.id in
<foreach item="item" index="index" collection="packageId" open="(" separator="," close=")">
#{item,jdbcType=INTEGER}
</foreach>
</if>
</select>
10.嵌套查询(一对多关联查询)
<select id="select" parameterType="java.util.Map" resultMap="materialOrderMap">
select a.*,
oa.card_no as orderCardNo,
oa.integral_type as integralType,
pa.city_code as cityCode,
pr.name as provinceName
from (
select mo.id,
mo.package_info as packageInfo,
date_format(mo.create_date, '%Y-%m-%d %H:%i:%s') as createDate,
date_format(mo.update_date, '%Y-%m-%d %H:%i:%s') as updateDate,
mo.state as state
from
表1 mo
where 1 = 1
and mo.state = '1'
<if test="createTime != null and createTime != '' ">
<![CDATA[ and date_format(mo.create_date,'%Y-%m-%d') >= #{createTime} ]]>
</if>
<if test="endTime != null and endTime != '' ">
<![CDATA[ and date_format(mo.create_date,'%Y-%m-%d') <= #{endTime} ]]>
</if>
) a
left join
表2 oa
on
a.orderno = oa.order_no
left join
表3 pa
on
a.orderno = pa.order_no
left join
表4 ci
on ci.city_code=pa.city_code
left join
表5 pr
on pr.code=ci.province_code
order by
a.createdate desc
</select>
<resultMap type="com.baidu.pojo.MaterialOrderPojo" id="materialOrderMap">
<id property="id" column="id"/>
<result property="packageInfo" column="package_info"/>
<result property="state" column="state"/>
<result property="createDate" column="create_date"/>
<result property="updateDate" column="update_date"/>
<result property="cityCode" column="city_code"/>
<collection property="orderCardInfo" ofType="com.baidu.pojo.OrderCardPojo">
<result property="orderCardNo" column="oa.card_no"/>
<result property="orderIntegral" column="oa.integral"/>
</collection>
</resultMap>
11. 模糊查询
<select id="select" parameterType="java.util.Map" resultMap="com.baidu.pojo.PackageDetailedPojo">
select * from 表名 v where v.FCUSTOMERNAME like CONCAT(CONCAT('%', #{fcustomername}), '%')
</select>
12.if + where 的条件判断
<select id="select" resultMap="resultMap_studentEntity" parameterType="liming.student.manager.data.model.StudentEntity">
SELECT ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.PLACE_ID
FROM 表名 ST
<where>
<if test="studentName !=null ">
ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName, jdbcType=VARCHAR}),'%')
</if>
</where>
</select>
13.if + set 的更新语句
<update id="update" parameterType="liming.student.manager.data.model.StudentEntity">
UPDATE 表名
<set>
<if test="studentName != null and studentName != '' ">
STUDENT_TBL.STUDENT_NAME = #{studentName},
</if>
<if test="studentSex != null and studentSex != '' ">
STUDENT_TBL.STUDENT_SEX = #{studentSex},
</if>
</set>
WHERE STUDENT_TBL.STUDENT_ID = #{studentId};
</update>
14.if+ trim代替where
<select id="select" resultMap="resultMap_studentEntity">
SELECT ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.PLACE_ID
FROM 表名 ST
<trim prefix="WHERE" prefixOverrides="AND|OR">
<if test="studentBirthday != null ">
AND ST.STUDENT_BIRTHDAY = #{studentBirthday, jdbcType=DATE}
</if>
</trim>
</select>
15.if + trim代替set
<update id="update" parameterType="liming.student.manager.data.model.StudentEntity">
UPDATE 表名
<trim prefix="SET" suffixOverrides=",">
<if test="studentName != null and studentName != '' ">
STUDENT_TBL.STUDENT_NAME = #{studentName},
</if>
<if test="studentSex != null and studentSex != '' ">
STUDENT_TBL.STUDENT_SEX = #{studentSex},
</if>
</trim>
WHERE STUDENT_TBL.STUDENT_ID = #{studentId}
</update>
16.choose (when, otherwise)
<select id="getStudentList_choose" resultMap="resultMap_studentEntity" parameterType="liming.student.manager.data.model.StudentEntity">
SELECT ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.PLACE_ID
FROM 表名 ST
<where>
<choose>
<when test="studentSex != null and studentSex != '' ">
AND ST.STUDENT_SEX = #{studentSex, jdbcType=INTEGER}
</when >
<otherwise>
</otherwise>
</choose>
</where>
</select>
17.foreach 参数为array示例的写法
<select id="getStudentListByClassIds_foreach_array" resultMap="resultMap_studentEntity">
SELECT ST.STUDENT_ID,
ST.PLACE_ID
FROM 表名 ST
WHERE ST.CLASS_ID IN
<foreach collection="array" item="classIds" open="(" separator="," close=")">
#{classIds}
</foreach>
</select>
18.foreach 参数为list示例的写法
<select id="getStudentListByClassIds_foreach_list" resultMap="resultMap_studentEntity">
SELECT ST.STUDENT_ID,
ST.PLACE_ID
FROM 表名 ST
WHERE ST.CLASS_ID IN
<foreach collection="list" item="classIdList" open="(" separator="," close=")">
#{classIdList}
</foreach>
</select>
1.添加语句
<insert id="insert" parameterType="com.baidu.bean.AppAccountBean">
insert into 表名
(account,pass,operate,create_date,remark)
values(
#{account,jdbcType=VARCHAR},
#{password,jdbcType=VARCHAR},
#{operater,jdbcType=VARCHAR},
now(),
#{remarks,jdbcType=VARCHAR}
)
</insert>
2.批量添加语句
<insert id="insert" parameterType="java.util.List">
insert into 表名(
delete_power,
create_date,
update_date,
remarks,
permission_group_code
)
values
<foreach collection="list" item="item" index="index" separator =",">
(
#{item.deletePower},
(select now() as createDate from dual),
(select now() as updateDate from dual),
#{item.remarks},
#{item.permissionGroupCode}
)
</foreach>
</insert>
3.删除语句
<delete id="delete" parameterType="String">
delete from 表名 where cs_admin_name = #{adminName}
</delete>
4.批量删除语句
<delete id="delete" parameterType="java.util.List">
delete from
表名
where
cs_admin_name
in
<foreach open="(" close=")" collection="list" item="item" index="index" separator=",">
#{item.adminName}
</foreach>
</delete>
5.修改语句
<update id="update" parameterType="com.baidu.pojo.HttpProjectPojo" >
UPDATE
表名
SET
<if test="state !=null and state !=''">
STATE = #{state} ,
</if>
<if test="isPaid !=null and isPaid !=''">
IS_PAID = #{isPaid} ,
</if>
UPDATE_DATE = sysdate()
WHERE
1=1
<if test="proNumber !=null and proNumber !=''">
AND PRO_NUMBER = #{proNumber}
</if>
</update>
6.批量修改语句
<update id="Update" parameterType="java.util.List" >
<foreach collection="list" item="item" index="index" separator=";">
update
表名
set
<![CDATA[material_num = material_num + #{item.materielNum} , ]]>
update_date = now()
where
pro_number = #{item.proNumber}
and
material_code = #{item.materielCode}
</foreach>
</update>
7.查询语句
<select id="select" parameterType="java.util.Map" resultType="com.baidu.pojo.MaterialOrderPojo">
select
mo.id,
date_format(mo.create_date,'%Y-%m-%d %H:%i:%s') as createDate,
date_format(mo.update_date,'%Y-%m-%d %H:%i:%s') as updateDate,
mo.remark as remarks,
mo.state as state
from
表名 mo
where
date_format(trunc(mo.create_date),'%Y-%m-%d') = date_format(trunc(now()),'%Y-%m-%d')
</select>
8.查询表里面的下一个自增的id
<select id="selectNextId" resultType="java.lang.Integer">
select AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_NAME = '表名';
</select>
9.in子查询语句
<select id="select" parameterType="java.util.Map" resultType="com.baidu.pojo.PackageDetailedPojo">
select
d.id as id,
b.id as packageId,
b.package_no as packageNo,
d.material_num as materialNum
from
表1 d
left join
表2 b
on
b.package_no=d.package_no
left join
表3 mp
on
mp.material_code = d.material_code
where
d.state = '1'
<if test="packageId != null and packageId != ''">
and b.id in
<foreach item="item" index="index" collection="packageId" open="(" separator="," close=")">
#{item,jdbcType=INTEGER}
</foreach>
</if>
</select>
10.嵌套查询(一对多关联查询)
<select id="select" parameterType="java.util.Map" resultMap="materialOrderMap">
select a.*,
oa.card_no as orderCardNo,
oa.integral_type as integralType,
pa.city_code as cityCode,
pr.name as provinceName
from (
select mo.id,
mo.package_info as packageInfo,
date_format(mo.create_date, '%Y-%m-%d %H:%i:%s') as createDate,
date_format(mo.update_date, '%Y-%m-%d %H:%i:%s') as updateDate,
mo.state as state
from
表1 mo
where 1 = 1
and mo.state = '1'
<if test="createTime != null and createTime != '' ">
<![CDATA[ and date_format(mo.create_date,'%Y-%m-%d') >= #{createTime} ]]>
</if>
<if test="endTime != null and endTime != '' ">
<![CDATA[ and date_format(mo.create_date,'%Y-%m-%d') <= #{endTime} ]]>
</if>
) a
left join
表2 oa
on
a.orderno = oa.order_no
left join
表3 pa
on
a.orderno = pa.order_no
left join
表4 ci
on ci.city_code=pa.city_code
left join
表5 pr
on pr.code=ci.province_code
order by
a.createdate desc
</select>
<resultMap type="com.baidu.pojo.MaterialOrderPojo" id="materialOrderMap">
<id property="id" column="id"/>
<result property="packageInfo" column="package_info"/>
<result property="state" column="state"/>
<result property="createDate" column="create_date"/>
<result property="updateDate" column="update_date"/>
<result property="cityCode" column="city_code"/>
<collection property="orderCardInfo" ofType="com.baidu.pojo.OrderCardPojo">
<result property="orderCardNo" column="oa.card_no"/>
<result property="orderIntegral" column="oa.integral"/>
</collection>
</resultMap>
11. 模糊查询
<select id="select" parameterType="java.util.Map" resultMap="com.baidu.pojo.PackageDetailedPojo">
select * from 表名 v where v.FCUSTOMERNAME like CONCAT(CONCAT('%', #{fcustomername}), '%')
</select>
12.if + where 的条件判断
<select id="select" resultMap="resultMap_studentEntity" parameterType="liming.student.manager.data.model.StudentEntity">
SELECT ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.PLACE_ID
FROM 表名 ST
<where>
<if test="studentName !=null ">
ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName, jdbcType=VARCHAR}),'%')
</if>
</where>
</select>
13.if + set 的更新语句
<update id="update" parameterType="liming.student.manager.data.model.StudentEntity">
UPDATE 表名
<set>
<if test="studentName != null and studentName != '' ">
STUDENT_TBL.STUDENT_NAME = #{studentName},
</if>
<if test="studentSex != null and studentSex != '' ">
STUDENT_TBL.STUDENT_SEX = #{studentSex},
</if>
</set>
WHERE STUDENT_TBL.STUDENT_ID = #{studentId};
</update>
14.if+ trim代替where
<select id="select" resultMap="resultMap_studentEntity">
SELECT ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.PLACE_ID
FROM 表名 ST
<trim prefix="WHERE" prefixOverrides="AND|OR">
<if test="studentBirthday != null ">
AND ST.STUDENT_BIRTHDAY = #{studentBirthday, jdbcType=DATE}
</if>
</trim>
</select>
15.if + trim代替set
<update id="update" parameterType="liming.student.manager.data.model.StudentEntity">
UPDATE 表名
<trim prefix="SET" suffixOverrides=",">
<if test="studentName != null and studentName != '' ">
STUDENT_TBL.STUDENT_NAME = #{studentName},
</if>
<if test="studentSex != null and studentSex != '' ">
STUDENT_TBL.STUDENT_SEX = #{studentSex},
</if>
</trim>
WHERE STUDENT_TBL.STUDENT_ID = #{studentId}
</update>
16.choose (when, otherwise)
<select id="getStudentList_choose" resultMap="resultMap_studentEntity" parameterType="liming.student.manager.data.model.StudentEntity">
SELECT ST.STUDENT_ID,
ST.STUDENT_NAME,
ST.PLACE_ID
FROM 表名 ST
<where>
<choose>
<when test="studentSex != null and studentSex != '' ">
AND ST.STUDENT_SEX = #{studentSex, jdbcType=INTEGER}
</when >
<otherwise>
</otherwise>
</choose>
</where>
</select>
17.foreach 参数为array示例的写法
<select id="getStudentListByClassIds_foreach_array" resultMap="resultMap_studentEntity">
SELECT ST.STUDENT_ID,
ST.PLACE_ID
FROM 表名 ST
WHERE ST.CLASS_ID IN
<foreach collection="array" item="classIds" open="(" separator="," close=")">
#{classIds}
</foreach>
</select>
18.foreach 参数为list示例的写法
<select id="getStudentListByClassIds_foreach_list" resultMap="resultMap_studentEntity">
SELECT ST.STUDENT_ID,
ST.PLACE_ID
FROM 表名 ST
WHERE ST.CLASS_ID IN
<foreach collection="list" item="classIdList" open="(" separator="," close=")">
#{classIdList}
</foreach>
</select>
最后PS:
1)<![CDATA[ ]]>是XML语法。在CDATA内部的所有内容都会被解析器忽略。如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
2)Mysql中获取当前时间(年月日 时分秒)有NOW()、SYSDATE()。 获取当前的日期(年月日) CURDATE()。 获取当前的时间(时分秒)CURTIME()。
1)<![CDATA[ ]]>是XML语法。在CDATA内部的所有内容都会被解析器忽略。如果文本包含了很多的"<"字符 <=和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
2)Mysql中获取当前时间(年月日 时分秒)有NOW()、SYSDATE()。 获取当前的日期(年月日) CURDATE()。 获取当前的时间(时分秒)CURTIME()。
阅读全文
0 0
- mybatis 配置文件mysql常用语句写法总结
- mybatis 配置文件mysql的常用语句写法总结
- mybatis 的like语句写法
- mybatis OR语句的写法
- mybatis的mapper配置文件的一般写法。
- mybatis中两个配置文件的写法
- 常用mysql语句总结
- mysql常用语句总结
- mysql常用语句总结
- MySQL常用语句总结
- mybatis配置文件写法
- mysql 嵌套语句的写法
- MySQL的SQL语句写法
- mybatis配置文件常用的标签
- 关于mybatis动态SQL语句的写法
- MySql,MyBatis(常用总结)
- 常用配置文件写法
- 常用配置文件写法
- Codeforces Round #382 (Div. 2)解题报告
- 使用border-radius无效,能看到背景还是方形的,边框变成圆角了的解决方案
- 【codeforces 808E】【Selling Souvenirs】【贪心】【动态规划】
- 移除掉数组里面的重复元素, 但是对于每种元素保留最后出现的那个
- MySQL数据更新中断后事务锁定
- mybatis 配置文件mysql的常用语句写法总结
- ftp服务器使用
- 修改centOS yum源的方法,修改到阿里云镜像
- 拉取远程分支代码到本地命令
- PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required
- Ubuntu 12.04 升级gcc到gcc4.8
- Mybatis 连表查询,返回结果封装为Map
- 锁重入
- linux解压war包的命令