mybatis常规SQL语句使用方法
---xml映射文件SQL增删改查大全
<!--内容为注释类容-->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace是mybaits映射文件的唯一标识,与接口对应-->
<mapper namespace="com.jt.mapper.UserMapper">
<!--1.用户新增-->
<insert id="方法名" >
insert into demo_user(id,name,age,sex)
value (null,#{name},#{age},#{sex})
</insert>
<!--2.用户修改-->
<update id="方法名">
update demo_user set name=#{name},age=#{age} where id=#{id}
</update>
<!--3.用户删除-->
<delete id="方法名">
delete from demo_user where id=#{id}
</delete>
<!--resultType使用 对象的属性名称与表中的字段不一样,查询时需要使用resultType-->
<!--4.用户查询 取中间值查询 转义符号-->
<select id="方法名" resultType="返回对象的路径">
<![CDATA[
select *from demo_user where age >#{minAge} and age < #{maxAge}
]]>
</select>
<!--5.模糊查询-->
<select id="方法名" resultType="返回对象的路径的">
select * from demo_user where name like "%"#{name}"%"
</select>
<!--6.简化sql 公司需要高效查询,中间需要些字段-->
<select id="方法名" resultType="返回对象的路径的">
select <include refid="user_cloimn"/> from demo_user
</select>
<sql id="user_cloimn">
id,name,age,sex
</sql>
<!--7.mybatis的集合操作 数组-->
<select id="方法名" resultType="返回值的对象路径">
select * from demo_user where id in
<foreach collection="array" open="(" close=")"
separator="," item="id">
#{id}
</foreach>
</select>
<!--8.mybatis的集合操作 List集合-->
<select id="方法名" resultType="返回值的对象路径">
select * from demo_user where id in
<foreach collection="list" open="(" close=")"
separator="," item="id">
#{id}
</foreach>
</select>
<!--9.mybatis的集合操作 map集合-->
<select id="方法名" resultType="返回值的对象路径">
select * from demo_user where id in
<foreach collection="key" open="(" close=")" separator="," item="id">
#{id}
</foreach>
</select>
<!--因为用户行为不可以控制,有时要求的传入的参数要求是多位,但是参数传的少需要用到动态sql-->
<!--10.动态sql 用if判断,如果为空就不执行 查询-->
<select id="方法名" resultType="返回值的对象路径">
select * from demo_user
<where>
<if test="id!=null" >id=#{id}</if>
<if test="name!=null">and name=#{name}</if>
<if test="age!= null">and age=#{age}</if>
<if test="sex!=null">and sex=#{sex}</if>
</where>
</select>
<!--11.动态sql 用if判断,如果为空就不执行 修改-->
<update id="方法名">
update demo_user
<set>
<if test="name!=null">name=#{name}, </if>
<if test="age!=null">age=#{age},</if>
<if test="sex!=null"> sex=#{sex}</if>
</set>
where id=#{id}
</update>
<!--12.动态sql 分支结构 条件选择一个 查询-->
<select id="方法名" resultType="返回值的对象路径">
select * from demo_user
<where>
<choose>
<when test="name != null "> name=#{name}</when>
<when test="age != null "> age=#{age}</when>
<otherwise> sex=#{sex}</otherwise>
</choose>
</where>
</select>
<!--13.resultMap使用 对象的属性名称与表中的字段不一样,查询时需要使用resultMap-->
<select id="方法名" resultMap="和下面id名字相同">
select * from dog
</select>
<resultMap id="自定义名字,需要和resultMap内容相同" type="返回值的对象路径">
<!--主键标识-->
<id column="dog_id" property="dogId"/>
<!--映射其他文件-->
<result column="dog_name" property="dogName"/>
<result column="dog_age" property="dogAge"/>
</resultMap>
<!--14. -->
</mapper>