mybatis mapper.xml属性:
- id=“xxxx” >>> 表示此段sql执行语句的唯一标识,也是接口的方法名称【必须一致才能找到】
- parameterType="" >>>表示该sql语句中需要传入的参数, 类型要与对应的接口方法的类型一致【可选】
- resultMap=“ ”>>> 定义出参,调用已定义的映射管理器的id值
- resultType=“ ”>>>定义出参,匹配普通Java类型或自定义的pojo【出参类型若不指定,将为语句类型默认类型,如语句返回值为int】
- 传参和取值:mapper.xml 的灵活性还体现在SQL执行语句可以传参,参数类型通过parameterType= “指定类型” 定义
- 取值方式1:#{value jdbcType = valuetype}:jdbcType 表示该属性的数据类型在数据库中对应的类型,如 #{user jdbcType=varchar} 等价于 String username;
- 取值方式2:${value } : 这种方式不建议大量使用,可能会发送sql注入而导致 安全性问题一般该取值方式可用在非经常变化的值上如order by ${value};
- 取值方式3:#{0} 表示传递过来的第一参数 . 也就是说#{N} 就可以获得传递过来的第N+1个参数
/***
*
*查询基本信息
*/
<select id="getInfo" resultType="Map" parameterType="java.lang.String">
select name ,age,sex from info
</select>
/***
*
*查询基本信息+时间条件查询
*@param 通过注解获取参数 startTime,endTime
*/
<select id="getInfoParamTime" resultType="Map" parameterType="java.lang.String">
select name ,age,sex from info <where>
<if>
createTime>to_date(#{startTime},'yyyy-mm-dd') and createTime < to_date(#{endTime},'yyyy-mm-dd')
</if>
</where>
</select>
/***
*
*查询基本信息+时间条件查询+name in (张三,张三丰,张君宝,张少佐)
*@param 通过注解获取参数 startTime,endTime,Arrays.asList(new String[]{"张三", "张三丰", "张君宝", "张少佐"})
*/
<select id="getInfoParamTime" resultType="Map" parameterType="java.lang.String">
select name ,age,sex from info <where>
<if>
createTime>to_date(#{startTime},'yyyy-mm-dd') and createTime < to_date(#{endTime},'yyyy-mm-dd')
</if>
and name IN
<foreach item="myItem" index="index" collection="myList"
open="(" separator="," close=")" >
#{myItem}
</foreach>
</where>
</select>
/***
*
*插入基本信息
*/
<insert id="getInfo" parameterType="java.lang.String">
insert into info(name,age,sex) values (?,?,?)
</insert>
/***
*
*更新基本信息
*/
<update id="updateInfo" parameterType="java.lang.String">
update info set name='张三',age='18',sex='1'
</update>
/***
*
*删除基本信息
*@param id 通过注解获取传入的参数值
*/
<delete id="delInfo" parameterType="java.lang.String">
delete info where pk=#{id}
</delete>
…继续加载中…