spring和mybatis的整合开发(基于MapperFactoryBean的整合开发(方便简单不复杂))
MapperFactoryBean是mybati-spring团队提供的一个用于根据mapper接口生成mapper对象的类。
在spring配置文件中可以配置以下参数:
1.mapperInterface:用于指定接口
2.sqlSessionFactory:用于指定SqlSessionFactory。
3.sqlSessionTemplate:用于指定SqlSessionTemplate。如果和sqlSessionFactory同时配置,则只会启用sqlSessionTemplate。
例如:
/*
* 客户持久化类
*/ public class Customer {
private Integer id;
private String username;
private String jobs;
private String phone;
setter/getter
toString()
}
CustomerMapper接口
public interface CustomerMapper {
public Customer findCustomerById(Integer id);
}
映射文件:namespace命名空间有包名加接口名
<mapper namespace="com.itheima.po.mapper.CustomerMapper">
<select id="findCustomerById" parameterType="Integer" resultType="customer">
select * from t_customer where id=#{id}
</select>
</mapper>
在applicationContext.xml中的配置
<!--基于MapperFactoryBean开发-->
<bean id="customerMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.itheima.po.mapper.CustomerMapper"/>
<property name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
在mybatis-config.xml中的配置
<!--引入mapper文件位置-->
<mappers>
<mapper resource="com/itheima/po/mapper/CustomerMapper.xml"/>
</mappers>
测试
public class FindCustomerByIdTest {
@Test
public void findCustomerById() {
ApplicationContext applicationContex = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerMapper customerMapper = applicationContex.getBean(CustomerMapper.class);
Customer customer = customerMapper.findCustomerById(1);
System.out.println(customer);
}
}
结果:
Customer{id=1, username='jason', jobs='java', phone='123456'}
使用基于mapperFactoryBean来使mybatis和spring的整合开发与传统的Dao方式开发相比,比较简单,没有重复代码,出错也更容易发现。 使用mapper接口编程需要遵守以下编程规范:
mapper接口编程方式只需要编写一个接口,然后由mybatis框架根据接口的定义创建接口的动态代理对象。
1.mapper的接口名称和对应的mapper.xml映射文件的名称必须一致。
2.mapper.xml文件中的namespace与mapper接口的类路径相同(也就是接口文件和映射文件需要放在一个包中)。
3.mapper接口中的方法名和mapper.xml中定义的每个执行语句的id相同。
4.mapper接口中方法的输入参数类型要和mapper.xml中定义的每个sql的parameterType的类型相同。
5.mapper接口方法的输出参数类型要和mapper.xml中定义的每个sql的resultType的类型相同。 使用mapper接口开发虽然简单,但是有个问题就是,当接口过多,会导致映射文件也过多,这样配置文件就会显得比较杂乱和臃肿。
这就要采用另外一种方式整合。基于MapperScannerConfigurer的整合可以解决这个问题。
spring和mybatis的整合开发(基于MapperFactoryBean的整合开发(方便简单不复杂))的更多相关文章
- spring和mybatis的整合开发(基于MapperScannerConfigurer的整合开发(适用于复杂项目,接口较多的情况))
在实际项目中,Dao层会包含很多接口,这样会导致spring配置文件过于臃肿.这时就需要采用扫描包的形式来配置mybaits中的映射器. 采用MapperScannerConfigurer来实现. M ...
- Spring+SpringMvc+Mybatis框架集成搭建教程三(框架整合测试程序开发)
框架整合测试程序开发 (1).在mysql数据库中创建t_user表,sql语句如下 CREATE TABLE `t_user` ( `id` bigint(20) NOT NULL AUTO_INC ...
- java:Mybatis框架2(基于mapper接口的开发,多种查询,复合类型查询,resultMap定义,多表联查,sql片段)
1.mybatis02: mybatis-config.xml: <?xml version="1.0" encoding="UTF-8"?> &l ...
- php 微信公众号+微商城开发 基于Thinkphp3.2框架开发
说明:本教程是自己自学+自己的理解+扩展(包括学习过程中遇到的一些问题) 参考教程:麦子学院--李忠益--http://www.maiziedu.com/u/70409/ 微盟: http://www ...
- spring和mybatis的整合开发(传统Dao开发方式)
spring和mybatis整合开发有三种整合方式1.传统DAO方式的开发整合(现在基本上不会用这种方式了,不推荐使用这种方式),2.mapper接口方式的开发整合(基于MapperFactoryBe ...
- 【SpringMVC学习04】Spring、MyBatis和SpringMVC的整合
前两篇springmvc的文章中都没有和mybatis整合,都是使用静态数据来模拟的,但是springmvc开发不可能不整合mybatis,另外mybatis和spring的整合我之前学习mybati ...
- (转)SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合
http://blog.csdn.net/yerenyuan_pku/article/details/72231763 之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBa ...
- 搭建Spring + SpringMVC + Mybatis框架之三(整合Spring、Mybatis和Spring MVC)
整合Spring和SpringMVC 之前已经整合了spring和mybatis,现在在此基础上整合SSM. 项目目录: 思路:SpringMVC的配置文件独立,然后在web.xml中配置整合. (1 ...
- SSM框架——Spring+SpringMVC+Mybatis的搭建教程
一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP. S ...
随机推荐
- python基础-小练习
三级菜单 要求: 打印省.市.县三级菜单 可返回上一级 可随时退出程序 购物车程序 要求: 用户名和密码存放于文件中,格式为:egon|egon123 启动程序后,先登录,登录成功则让用户输入工资,然 ...
- UVA - 11374 - Airport Express(堆优化Dijkstra)
Problem UVA - 11374 - Airport Express Time Limit: 1000 mSec Problem Description In a small city c ...
- python3 json模块
import json '''把python对象转化为json串(字符串), ensure_ascii处理中文乱码'''dic = {"复联4": "好看吗", ...
- 2-STM32带你入坑系列(点亮一个灯--Keil)
1-STM32带你入坑系列(STM32介绍) 首先是安装软件 这一节用Kei来实现,需要安装MDK4.7这个软件,怎么安装,自己百度哈.都学习32的人了,不会连个软件都不会安装吧....还是那句话 没 ...
- C#模板设计模式使用和学习心得
模板设计模式: 模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种: 抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现. 模版方法:由抽象类 ...
- OI用语一览表
术语 含义 A/AC 通过 AAA树 Top-tree ABC AtCoder Beginner Contest AFO 退役 AG 银牌 AGC AtCoder Grand Contest AK 通 ...
- ExcelDna项目完整工程演示及讲解
原始链接:http://www.cnblogs.com/Charltsing/p/ExcelDnaDemo.html ExcelDna工程演示讲课内容 1.ExcelDna是啥? 2.ExcelDna ...
- 【学习总结】GirlsInAI ML-diary day-11-while循环
[学习总结]GirlsInAI ML-diary 总 原博github链接-day11 认识while循环执行 对于while/break/continue的认识 新值替换变量 一般while语句 无 ...
- MySQL索引管理
一.索引介绍 1.什么是索引 1.索引好比一本书的目录,它能让你更快的找到自己想要的内容. 2.让获取的数据更有目的性,从而提高数据库索引数据的性能. 2.索引类型介绍 1.BTREE:B+树索引 2 ...
- [问题]Android listView item edittext 不能调用软键盘输入法
android listview item edittext not softkeyboard edittext可以获取焦点, 可以触发事件, 但是就是不能调用输入法, 不知道为什么? 难道不能在i ...