mybatis-xml映射文件

简介

mybatis与Hibernate是全自动框架不同,它是半自动框架。因此mybatis拥有优化sql语句空间的同时,也需要手动配置sql语句。但是由于它是半自动的特点,它又比jdbc语句来得省时省力。

select 查询语句

select语句在许多场景下都显得尤为重要。在mybatis中,可以简单的配置select语句。
下面是一个select语句的简单示例。

<select id="selectUser" resultType="User">
	select uid,uname,uaddress from user_base_inf
</select>

将resultType属性设置为User(User是在xml配置文件中设置的别名),mybatis能轻松的自动映射结果。

insert 插入语句

下面是一个insert语句的简单示例。

<insert id="insertUser" parameterType="User">
		insert into user_base_inf(uid,uname,uaddress)
		values(#{uid},#{uname},#{uaddress})
</insert>

update 更新语句

下面是一个uodate语句的简单示例。

	<update id="updateUser" parameterType="User">
		update user_base_inf set
		uname=#{uname},uaddress=#{uaddress} where uid=#{uid}
	</update>

delete 删除语句

下面是一个delete语句的简单示例。

<delete id="deleteUserByUid">
	delete from user_base_inf where uid=#{uid}
</delete>

sql 可重用语句块

sql可以定义sql语句代码段并在其他语句中使用,从而达到sql语句重用的效果。
下面是一个sql语句使用的简单示例。

<select id="findUserByUid" resultType="User">
	select uid,uname,uaddress
	from user_base_inf where uid = #{uid}
</select>

<select id="findUser" resultType="User">
	select uid,uname,uaddress from
	user_base_inf
</select>

容易发现,上面两句select语句中有大量的重复部分,将其抽取成sql语句,

<sql id="userColumns">uid,uname,uaddress from user_base_inf</sql>
	
<select id="findUserByUid" resultType="User">
	select<include refid="userColumns"/> where uid = #{uid}
</select>

<select id="findUser" resultType="User">
	select <include refid="userColumns"/>
</select>

这两段代码虽然不同,但是其的作用是完全相同。可以预见,当有成千上万条相似的sql语句时,sql可重用语块的出现能极大的缩小代码量。

#{} 参数占位符

使用#{}可以向语句传递参数。这在大部分的sql语句中都会用到。

${} 字符串替换

使用${}可以向语句传递字符串。字符串将在sql语句调用时不进行转义地替换字符串。值得注意的是, ${}的使用会有潜在的注入风险。

resultMap 结果映射

mybatis对于简单的语句可以进行自动的结果映射。但是面对复杂的语句时,自动结果映射可能会得到意料之外的结果。这时候需要进行配置结果映射。
在进行关联的嵌套select查询时,字段名与属性名相同时不用配置结果映射。
在进行关联的嵌套结果映射时,所有字段都需要配置结果映射。

cache 缓存

mybatis有强大的缓存机制。可以通过cache元素来轻松地修改。
默认情况下只开起本地会话缓存缓存一个会话。

<cache/>

只需要添加这一行代码,即可开启全局二级缓存

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值