您的位置:首页 > 移动开发

Mybatis与Spring的mapper代理整合方法

2015-11-03 10:49 218 查看
1、配置环境



2、UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离
注意:使用mapper代理方法开发,namespace有特殊重要的作用
-->
<mapper namespace="cn.byr.ssm.mapper.UserMapper">

<!-- 在 映射文件中配置很多sql语句 -->
<!-- 需求:通过id查询用户表的记录 -->
<!-- 通过 select执行数据库查询
id:标识 映射文件中的 sql
将sql语句封装到mappedStatement对象中,所以将id称为statement的id
parameterType:指定输入 参数的类型,这里指定int型
#{}表示一个占位符号
#{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称

resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。
-->
<select id="findUserByLoginname" parameterType="String" resultType="cn.byr.ssm.po.User">
SELECT * FROM t_user WHERE loginname=#{value}
</select>

</mapper>


3、UserMapper接口文件

package cn.byr.ssm.mapper;

import cn.byr.ssm.po.User;

public interface UserMapper {
//根据用户名查询用户信息
public User findUserByLoginname(String loginname) throws Exception;
}


4、applicationContext.xml文件加入

<bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="cn.byr.ssm.mapper.UserMapper"></property>
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>


5、测试



6、改进一下 使用spring的mapper扫描器

使用mapper扫描器
此方法即mapper接口开发方法,只需定义mapper接口,不用编写mapper接口实现类。只需要在spring配置文件中定义一个mapper扫描器,自动扫描包中的mapper接口生成代代理对象。

1、    mapper.xml文件编写,
2、    定义mapper接口
注意mapper.xml的文件名和mapper的接口名称保持一致,且放在同一个目录
3、    配置mapper扫描器
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="mapper接口包地址"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
basePackage:扫描包路径,中间可以用逗号或分号分隔定义多个包
4、    使用扫描器后从spring容器中获取mapper的实现对象
如果将mapper.xml和mapper接口的名称保持一致且放在一个目录 则不用在sqlMapConfig.xml中进行配置


1.1.1 使用mapper扫描器

此方法即mapper接口开发方法,只需定义mapper接口,不用编写mapper接口实现类。只需要在spring配置文件中定义一个mapper扫描器,自动扫描包中的mapper接口生成代代理对象。

1、 mapper.xml文件编写,

2、 定义mapper接口

注意mapper.xml的文件名和mapper的接口名称保持一致,且放在同一个目录

3、 配置mapper扫描器

<beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="mapper接口包地址"></property>

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>

</bean>

basePackage:扫描包路径,中间可以用逗号或分号分隔定义多个包

4、 使用扫描器后从spring容器中获取mapper的实现对象

如果将mapper.xml和mapper接口的名称保持一致且放在一个目录则不用在sqlMapConfig.xml中进行配置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: