项目经验之mybatis

本文详细介绍了Mybatis mapper.xml文件中的核心属性,包括id的重要性、parameterType和resultType的使用、resultMap的定义以及不同取值方式的参数绑定,强调了安全问题和最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 &lt; 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 &lt; 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>

…继续加载中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值