mybatis框架详解

SqlMapConfig.xml中配置的内容和顺序如下:

properties(属性):可提取数据库驱动

设置(全局配置参数)

typeAliases(类型别名)(typeAlias和package)

类型处理器(类型处理器)

objectFactory对象对象(对象工厂)

插件(插件)

环境(环境集合属性对象)

环境(环境子属性对象)

transactionManager的的(事务管理)

数据源(数据源)

mappers(映射器)

注意:顺序固定不可更改

 

映射配置的几种方法:

方法一:<mapper resource =“”/>

             使用相对于类路径的资源(现在的使用方式)

             如:<mapper resource =“sqlmap / User.xml”/>

方法二:<mapper class =“”/>

                   使用映射器接口类路径

                  如:<mapper class =“cn.itcast.mybatis.mapper.UserMapper”/>

方法三:<包名称=“”/>

              指定包下的所有映射接口

              如:<package name =“cn.itcast.mybatis.mapper”/>

              注意:此种方法要求映射接口名称和映射器映射文件名称相同,且放在同一个目录中

动态SQL

通过MyBatis的提供的各种标签方法实现动态拼接SQL。

如果标签

举例:

<!-- 根据条件查询用户 -->
<select id="queryUserByWhere" parameterType="user" resultType="user">
	SELECT id, username, birthday, sex, address FROM `user`
	WHERE 1=1
	<if test="sex != null and sex != ''">
		AND sex = #{sex}
	</if>
	<if test="username != null and username != ''">
		AND username LIKE
		'%${username}%'
	</if>
</select>

 

w ^ 这里标签:可去掉第一个和

<!-- 根据条件查询用户 -->
<select id="queryUserByWhere" parameterType="user" resultType="user">
	SELECT id, username, birthday, sex, address FROM `user`
<!-- where标签可以自动添加where,同时处理sql语句中第一个and关键字 -->
	<where>
		<if test="sex != null">
			AND sex = #{sex}
		</if>
		<if test="username != null and username != ''">
			AND username LIKE
			'%${username}%'
		</if>
	</where>
</select>

 

SQL片段

SQL中可将重复的SQL提取出来,使用时用包括引用即可,最终达到SQL重用的目的。

举例:

<!-- 使用include标签加载sql片段;refid是sql片段id -->
	SELECT <include refid="userFields" /> FROM `user`
	<!-- where标签可以自动添加where关键字,同时处理sql语句中第一个and关键字 -->
	<where>
		<if test="sex != null">
			AND sex = #{sex}
		</if>
		<if test="username != null and username != ''">
			AND username LIKE
			'%${username}%'
		</if>
	</where>
</select>

<!-- 声明sql片段 -->
<sql id="userFields">
	id, username, birthday, sex, address
</sql>

 

的foreach标签

向SQL传递数组或列表,MyBatis的使用的foreach解析,如下:

根据多个ID查询用户信息

查询sql:SELECT * FROM user WHERE id IN(1,10,24)

设置标签:可去掉最后一个“”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值