04.Mybatis初级使用-Mapper映射器(一)

Mapper映射器是Mybatis中的核心工具,也是Mybatis的核心功能。通过映射器,我们可以自定义SQL语句,灵活的操作数据库,这也是Mybatis的特色所在。所以,熟练使用映射器是掌握Mybatis的核心。Mybatis映射器由mapper接口和mapper xml配置文件组成。

Select

select元素执行查询,根据parameterType指定参数类型,根据resultType指定返回类型。

当数据库字段与javabean中属性相同时,Mybatis自动将查询返回的结果集绑定到javabean相应的属性上,当数据库字段与javabean中属性不同时,我们可以通过sql语句的字段别名方式,使得Mybatis可以自动映射。如:

<select id="getRole" parameterType="java.lang.Integer" resultType="Role">
	select id, role_name roleName, note from role where id = #{id}
</select>

这个查询语句,根据ID值查询相应的记录,返回字段名为id、rolenName、note,Mybatis自动将他们组装成一个Role对象实例作为返回结果。

我们还可以通过resultMap映射结果集。

与select定义resultMap

<resultMap type="Role" id="roleResultMap">
	<id property="id" column="id"/>
	<result property="roleName" column="role_name"/>
	<result property="note" column="note"/>
</resultMap>

<select id="getRole" parameterType="java.lang.Integer" resultMap="roleResultMap">
	select id, role_name, note from role where id = #{id}
</select>
这里定义了一个id为roleResultMap的映射规则resultMap,它的type属性为Role。其中id元素即为数据库表中的主键(可以有多个联合主键)、result元素为其它简单类型(当然还有复杂类型)。property属性是javabean中的属性名,column是数据库中对应的字段名。指定select元素的resultMap属性值为roleResultMap(注意不是resultType,resultType指定返回类型, 而resultMap指定使用哪一个resultMap的映射规则,二者不能同时存在)。这样Mybatis同样可以完成数据库记录到javabean的自动映射。

参数parameterType属性和返回类型resultType属性都可以指定简单的java类型,如java.lang.String、java.lang.Integer(当然可以简写成string、integer,Mybatis内置的系统 定义别名,如配置文件中的typeAliases元素的功能一样),可以指定java.util.Map(map),也可以指定javabean类,如role。


使用map作为参数或返回类型很少使用,下面是一个简单的例子

RoleMapper接口中定义方法

Map<String, Object> getRoleMapByMap(Map<String, Object> map);
roleMapper.xml配置文件中定义select

<select id="getRoleMapByMap" parameterType="java.util.Map" resultType="java.util.Map">
	select * from role where id = #{id}
</select>
测试代码:

Map<String, Object> map = new HashMap<String, Object>();
map.put("id", 10002);
Map<String, Object> resultMap = roleMapper.getRoleMapByMap(map);
System.out.println(resultMap.get("role_name"));

getRoleMapByMap方法返回的resultMap中包含了数据库记录对应的键值对,{id: 10002, role_name: 'Mybatis', note: 'Mybatis learning.'}

程序运行结果打印出:Mybatis


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值