SQL映射文件详解

SQL映射文件

SQL映射文件中的几个顶级元素介绍:
mapper:SQL映射文件的根元素。只有一个属性namespace,用于区分不同的mapper,必须全局唯一。
cache:为给定命名空间配置缓存。
cache-ref:引用其他命名空间中的缓存配置。
resultMap:用来描述查询结果集中的字段和Java实体类属性的对应关系。
sql:定义可重用的SQL语句块,可以在其他语句映射中引用,提高编写和维护SQL语句的效率。
insert:映射insert语句。
update:映射update语句。
delete:映射delete语句。
select:映射select语句。
单一条件查询
在接口中添加一个查询
	int Grenndang(String SysUser);
添加Sql语句
	<select>
		select * from cvs_js where name = #{Name}
	</select>
MyBatis框架内建的部分名与Java数据类型的映射关系
别名映射类型别名映射类型
booleanBooleanstringString
byteBytebigdecimal或decimalBigDecimal
longLongdateDate
shortShortmapMap
int或integerIntegerhashmapHashMap
doubleDoublelistList
floatFloatarraylistArrayList
多条件查询

1.将查询条件爱你封装成一格Java对象作为参数

int Grenndang(SysUser sysuser(SysUser作为一个实体类));

2.将查询条件封装成Map对象作为参数

List<SysUser> getUserList(Map<String,Object> userMap)

3.使用@Param注解实现多参数入参

int Grenndang(@Param(Name)String name);

MyBatis框架的结果映射

使用resultMap元素自定义结果映射
//示例
 
//Mapper接口
public List<SysUser> getUserListWithRoleName(SysUser sysUser);
 
//xml文件
//使用resultMap元素定义结果映射
<resultMap id="userWithRoleName" type="sysuser">
    <id property="id" column="id">
    <result property="userRoleName" column="roleName"/>
</resultMap>
 
//resultMap元素定义的规则封装查询结果
<select id="getUserListWithRoleName" parameterType="sysuser" resultMap="userWithRoleName">
    select u.*,r.roleName from t_sys_user u,t_sys_role r
    where u.realName like CONCAT ('%',#{realName},'%')
    and u.roleId = #{roleId} and u.roleId = r.id
</select>
select元素通过resultMap属性引用resultMap元素定义的映射规则:

resultMap元素包含以下属性:

id:映射规则集的唯一标识,可以被select元素的resultMap属性引用。
type:映射的结果类型,这里指定封装成SysUser实例。
resultMap元素包含以下子元素: 

id:指定和数据表主键字段对应的标识属性。设置此项可以提升MyBatis框架的性能,特别是应用缓存和嵌套结果映射的时候。
result:指定结果集字段和实体类属性的映射关系。
####嵌套结果映射:  
	1、association元素
	association属性
	resultMap:外部引用 值为id值
	property:为你在这个类创建的类对象名称
	javaType:为完整java类名或者别名
	子元素
	id:一般用于主键
	result元素属性
	property :属性名
	column:数据库列名或者别名
<!--方法一 未使用resultMap  -->
	<resultMap type="Bill" id="billListInProvider">
 		<id property="id" column="id"/>
 		<association property="provider" javaType="Provider">
 			<id property="id" column="p_id"/>
 			<result property="proCode" column="proCode"/>
 			<result property="proName" column="proName"/>
 			<result property="proContact" column="proContact"/>
 			<result property="proPhone" column="proPhone"/>
 		</association>
 	</resultMap>
 
	<!--方法二 使用resultMap  -->
	<resultMap type="User" id="userRoleResult">
		<result property="id" column="id"/>
		<result property="userCode" column="userCode"/>
		<result property="userName" column="userName"/>
		<result property="userRole" column="userRole"/>
		<association property="role" javaType="Role" resultMap="aaaa" />
	</resultMap>
	
	<resultMap type="Role" id="aaaa">
		<result property="id" column="r_id"/>
			<result property="roleCode" column="roleCode"/>
			<result property="roleName" column="roleName"/>
	</resultMap>
	2、collection元素
	
	collection属性
	resultMap:外部引用 值为id值
	property:为这个类内的集合名称
	ofType:完整的类名或别名,就是集合包含的类型
	子元素
	id:一般用于主键
	result元素属性
	property :属性名
	column:数据库列名或者别名
resultType和resultMap小结:
resultmap:resultMap如果查询出来的列名和pojo的属性名不一致,通过定义
一个resultMap对列名和pojo属性名之间作一个映射关系。
resultType:resultType使用resultType进行输出映射,只有查询出来的
列名和pojo中的属性名一致,该列才可以映射成功。
  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL映射文件是指在使用对象关系映射(ORM)框架时,为了将对象与数据库表进行映射而创建的文件。在Java开发中,常用的ORM框架有MyBatis和Hibernate,它们都支持使用SQL映射文件来定义对象与数据库表之间的映射关系。 SQL映射文件通常使用XML格式来编写,包含了一系列的SQL语句和配置信息。下面是一个简单的SQL映射文件示例: ```xml <!-- UserMapper.xml --> <mapper namespace="com.example.UserMapper"> <select id="getUserById" resultType="com.example.User"> SELECT * FROM users WHERE id = #{id} </select> <insert id="insertUser" parameterType="com.example.User"> INSERT INTO users (name, age) VALUES (#{name}, #{age}) </insert> <update id="updateUser" parameterType="com.example.User"> UPDATE users SET name = #{name}, age = #{age} WHERE id = #{id} </update> <delete id="deleteUser" parameterType="int"> DELETE FROM users WHERE id = #{id} </delete> </mapper> ``` 在上述示例中,`namespace`属性指定了映射文件对应的Mapper接口或类的全限定名。`select`、`insert`、`update`和`delete`标签分别定义了查询、插入、更新和删除操作的SQL语句,使用`id`属性指定了方法名,`parameterType`属性指定了方法参数的类型,`resultType`属性指定了查询结果的映射类型。 通过SQL映射文件,我们可以将数据库操作的SQL语句独立出来,降低了代码和SQL的耦合度,使得代码更加清晰、易于维护。ORM框架会根据映射文件中的配置信息,自动将对象与数据库表进行映射,简化了开发过程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值