Mybatis-Spring整合Mapper代理开发
来源:互联网 发布:马克威算法交易平台 编辑:程序博客网 时间:2024/05/16 13:37
1.MapperFactoryBean 生成 mapper代理的方式
在mybatis-spring.xml添加一个bean
MapperFactoryBean是mapper接口生成代理 ,此方法配置mapper的话,有几个mapper.xml就得写几个bean标签,比较麻烦。 在mybatis-spring.xml <beans></beans> 中增加下面代码
<bean id="ordersMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> <!-- mapperInterface是mybatis-spring.jar 中 MapperFactoryBean类中 的mapperInterface接口属性 --> <property name="mapperInterface" value="com.shao.ssm.mapper.OrdersMapper"/> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> <!-- 是为了自动注入SqlSessionFactory ,ref="sqlSessionFactory 是引用了上面配置的sqlSessionFactoryBean 的id"--> </bean>
- id=”ordersMapper” 意味 定义了此mapper接口生成代理 的id为‘ordersMapper’ ,在service类中调用时需要通过id来获取该bean。
-
mapperInterface 是org.mybatis.spring.mapper.MapperFactoryBean.java 类中的一个mapper类型的接口属性,赋予它的value是某个mapper.java的权限定名。
name = “sqlSessionFactory” 中sqlSessionFactory是org.mybatis.spring.mapper.MapperFactoryBean.java 类中的一个属性, 他的 ref=”sqlSessionFactory” 是参照绑定了org.mybatis.spring.SqlSessionFactoryBean 配置bean的id名称, 其也是在此文件中定义的 如下<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 加载mybatis的配置文件 --> <property name="configLocation" value="mybatis/SqlMapConfig.xml" /> <!-- 关联上边配置的dataSource --> <property name="dataSource" ref="dataSource" /></bean>
mapper.java
public List findOrdersAndUser() throws Exception ;
mapper.xml
<!-- 使用resultType 一对一映射 --> <select id="findOrdersAndUser" resultType="OrderCustom"> SELECT a.*,b.name,b.sex FROM orders a,user b WHERE a.`id`=b.`id` ; </select>
这里写代码片
测试
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.shao.ssm.pojo.OrderCustom;public class OrdersMapperTest { private ApplicationContext applicationContext ; @Before public void setUp() throws Exception { applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); } @Test public void testFindOrdersAndUser() throws Exception { OrdersMapper orderMapper = (OrdersMapper) applicationContext.getBean("ordersMapper") ; //从容器里getBean 括号里边与 Mybatis-spring配置文件中的bean id 一致 List<OrderCustom> orderCustomList = orderMapper.findOrdersAndUser() ; for(int i = 0 ; i<orderCustomList.size();i++) System.out.println(orderCustomList.get(i).getName()); }
2.MapperScannerConfigurer批量扫描自动创建代理对象并在Spring容器中注册的方式。
在mybatis-spring.xml添加一个bean
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.shao.ssm.mapper" /> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!-- 是为了自动注入SqlSessionFactory ,ref="sqlSessionFactory 是引用了上面配置的sqlSessionFactoryBean 的id"--> </bean>
basePackage和 sqlSessionFactoryBeanName 都是 MapperScannerConfigurer类中的属性
basePackage 的value 指定mapper 所在的包的包名。
sqlSessionFactoryBeanName 的value 指定sqlSessionFactory 也是 参照SqlSessionFactoryBean 的配置信息id。
注意一下几点:
1. mapper批量扫描,从mapper包中扫描出mapper接口,自动创建代理对象并且在spring容器中注册
2. 遵循的规范:将mapper.java和mapper.xml映射文件名称保持一致,并且在一个目录中
3. 如果在此配置了批量扫描,SqlMapConfig类中的mapper 中可以不配置 package批量扫描
4. MapperScannerConfigurer这不同于MapperFactoryBean有id 它的id为每个mapper接口的类名,且首字母为小写
5. 指定扫描多个包,每个包中间使用半角逗号分隔
mapper.java
同上MapperFactoryBean 生成 mapper代理的方式。
mapper.xml
同上MapperFactoryBean 生成 mapper代理的方式。
测试
同上MapperFactoryBean 生成 mapper代理的方式 。
- Mybatis-Spring整合Mapper代理开发
- Spring和Mybatis整合(mapper代理开发)
- Spring + Mybatis - 原始dao开发整合 与 Mapper代理整合
- mybatis和spring整合开发(mapper代理)
- Mybatis之Spring整合Mapper代理
- Mybatis和Spring整合mapper代理
- Spring和Mybatis整合-mapper开发
- (五)mybatis学习之mapper代理开发方式及与spring整合
- Mybatis和Spring整合(原始Dao)非mapper代理
- Spring整合MyBatis (使用扫描包配置mapper代理)
- Spring 整合Mybatis mapper问题
- [mybatis]Mapper接口代理开发
- 4.mybatis,mapper代理开发
- mapper代理方法开发mybatis
- Mybatis Mapper代理开发规范
- mybatis开发Mapper代理方式
- mybatis mapper接口代理开发
- Spring与Mybatis的整合之Mapper代理的整合方式
- redis 主从复制
- 大数计算文章系列博客地址纪录: 阶乘之计算http://blog.csdn.net/liangbch/rss/list
- jsp实验4.(2)session
- 在Javaweb当中contentType和pageEncoding的编码区别
- 从外部访问Docker
- Mybatis-Spring整合Mapper代理开发
- adb操作命令详解及大全
- STM32 ISP下载模式和JLINK下载模式
- 二路归并排序
- 完数
- 文章标题
- Learning color and locality cues for moving object detection and segmentation方法解析
- 浅谈浏览器缓存机制
- 安卓开发获取已安装的应用