31Mybatis_mybatis和spring整合-mapper代理开发
案例结构图:
aaarticlea/png;base64,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" alt="" />
cn.itcast.ssm.mapper:存放mapper接口以及mapper.xml代码。
cn.itcast.ssm.po:存放数据库实体类。
config:存放各种配置文件。
test:存放测试代码。
OrdersMapperCustom.java代码如下:
package cn.itcast.ssm.mapper; import cn.itcast.ssm.po.User; public interface OrdersMapperCustom {
//函数的名字OrdersMapperCustom.xml中select中的id名一样 public User finduserByid(int id);
}
ordersMapperCustom.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">
<!-- nanmespace:命名空间。 作用就是对sql进行分类话管理,理解Sal分离 注意:使用mapper代理方式,namespace有特殊重要的作用
--> <mapper namespace="cn.itcast.ssm.mapper.OrdersMapperCustom">
<cache></cache> <select id="finduserByid" parameterType="int" resultType="cn.itcast.ssm.po.User">
SELECT * FROM USER WHERE ID=#{VALUE}
</select> </mapper>
User.java代码如下:
package cn.itcast.ssm.po; import java.io.Serializable;
import java.util.Date;
import java.util.List; public class User implements Serializable {
private int id;//对应数据库中主键
private String username;//对应数据库中用户的名称
private Date birthday;//对应数据库中的生日
private String sex;//性别
private String address;//地址 public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }
SqlMapConfig.xml代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> <!-- 用包加载的方式进sqlMapConfig.xml-->
<mappers>
<mapper class="cn.itcast.ssm.mapper.OrdersMapperCustom"/> </mappers> </configuration>
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd "> <!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="maxActive" value="10"></property>
<property name="maxIdle" value="5"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="mybatis/SqlMapConfig.xml"></property>
<!-- 配置数据源 -->
<property name="dataSource" ref="dataSource"></property>
</bean> <bean id="OrdersMapperCustom" class="org.mybatis.spring.mapper.MapperFactoryBean">
<!-- 给org.mybatis.spring.mapper.MapperFactoryBean类中一些
属性赋值:
1:生成Mapper是需要sqlSession的,而生成sqlSession是需要sqlSessionFactory的。所以配置了
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
2: 生成Mapper代理对象是需要Mapper类类型的。所以这句话就是指定类型 <property name="mapperInterface" value="cn.itcast.ssm.mapper.OrdersMapperCustom"></property>
意思是根据cn.itcast.ssm.mapper.OrdersMapperCustom这个接口创建Mapper代理类。
-->
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
<property name="mapperInterface" value="cn.itcast.ssm.mapper.OrdersMapperCustom"></property>
</bean> </beans>
user.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">
<!-- nanmespace:命名空间。 作用就是对sql进行分类话管理,理解Sql分离 注意:使用mapper代理方式,namespace有特殊重要的作用
--> <mapper namespace="test"> <!-- 根据id获取用户信息 -->
<!-- 在映射文件中配置很多sql语句 -->
<!--
id:标识映射文件中的sql;
将sql语句封装到mappedStatement对象中,所以将id称为statement的id;parmenterType:指定输入的参数的类型,这里指定的int型
#{}表示一个占位符号;
#{id}:其中的id表示接收输入的参数,参数名称就是id,如果输入参数就是简单类型,#{}中的参数名可以任意,可以value或其它名称
resultType:指定的sql输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象; -->
<select id="findUserById" parameterType="int" resultType="cn.itcast.ssm.po.User">
select * from user where id = #{id}
</select> </mapper>
db.properties代码如下:
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybaits
jdbc.username=root
jdbc.password=root
log4j.properties:
# Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
Junit测试代码:TestSprigMybatis:
package springmvc_mybatis_shen; import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.itcast.ssm.Dao.UserDao;
import cn.itcast.ssm.mapper.OrdersMapperCustom; public class TestSpringMybatis {
ApplicationContext applicationContext;
@Before
public void setup()
{//spring的方式加载配置文件
applicationContext=new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); }
@Test
public void testSpringMyabtis()
{OrdersMapperCustom ordersMapperCustom=(OrdersMapperCustom) applicationContext.getBean("OrdersMapperCustom");
ordersMapperCustom.finduserByid(1); } }
运行结果:正确
------------------------------------------------------------------------------------------------------------------------------------------------
但是上面的applicationContext.xml(如下)代码写的繁琐
<bean id="OrdersMapperCustom" class="org.mybatis.spring.mapper.MapperFactoryBean">
<!-- 给org.mybatis.spring.mapper.MapperFactoryBean类中一些
属性赋值:
1:生成Mapper是需要sqlSession的,而生成sqlSession是需要sqlSessionFactory的。所以配置了
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
2: 生成Mapper代理对象是需要Mapper类类型的。所以这句话就是指定类型 <property name="mapperInterface" value="cn.itcast.ssm.mapper.OrdersMapperCustom"></property>
意思是根据cn.itcast.ssm.mapper.OrdersMapperCustom这个接口创建Mapper代理类。
-->
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
<property name="mapperInterface" value="cn.itcast.ssm.mapper.OrdersMapperCustom"></property>
</bean>
:需要对每个mapper进行配置,麻烦。
所以工作中的做法是:
通过MapperScannerConfigurer进行mapper扫描(建议使用)
针对上面的案例,此处只要修改三处代码:
1.applicationContext.xml代码:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd "> <!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="maxActive" value="10"></property>
<property name="maxIdle" value="5"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="mybatis/SqlMapConfig.xml"></property>
<!-- 配置数据源 -->
<property name="dataSource" ref="dataSource"></property>
</bean> <!-- mapper批量扫描:从mapper包中扫面出mapper接口,自动创建代理对象并且在spring
容器中注册遵循规范,将mapper.java和mapper.xml映射文件名称保持一致,且在一个目录中
自动扫面出来的mapper的bean的id为mapper类名(首字母小写)。 用这种做法的话在SqlMapConfig.xml中加载OrdersMapperCustom.xml的代码
( <mapper class="cn.itcast.ssm.mapper.OrdersMapperCustom"/>)就可以去掉。 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 如果扫描多个包,每个包中间使用半角逗号分隔 -->
<property name="basePackage" value="cn.itcast.ssm.mapper"></property> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean> </beans>
2.SqlMapConfig.xml代码:这里不需要再写 <mapper class="cn.itcast.ssm.mapper.OrdersMapperCustom"/>
代码了,因为在applicationContext.xml的 mapper批量扫描会自动去加载
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration> </configuration>
3.
package springmvc_mybatis_shen; import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.itcast.ssm.Dao.UserDao;
import cn.itcast.ssm.mapper.OrdersMapperCustom; public class TestSpringMybatis {
ApplicationContext applicationContext;
@Before
public void setup()
{//spring的方式加载配置文件
applicationContext=new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
}
@Test
public void testSpringMyabtis()
{
/*
* 将mapper.java和mapper.xml映射文件名称保持一致,且在一个目录中。
自动扫面出来的mapper的bean的id为mapper类名(首字母小写)也就是ordersMapperCustom。
*
*/
OrdersMapperCustom ordersMapperCustom=(OrdersMapperCustom) applicationContext.getBean("ordersMapperCustom");
ordersMapperCustom.finduserByid(1); } }
运行结果:一切正常。
31Mybatis_mybatis和spring整合-mapper代理开发的更多相关文章
- Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6869133.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(一)——My ...
- 【转】Mybatis学习---MyBatis知识、原始Dao开发和mapper代理开发
[原文]https://www.toutiao.com/i6594610137560777223/ 一.什么是MyBatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及 ...
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
承接上一篇 mybatis入门基础(一) 看过上一篇的朋友,肯定可以看出,里面的MybatisService中存在大量的重复代码,看起来不是很清楚,但第一次那样写,是为了解mybatis的执行步骤,先 ...
- 【mybatis深度历险系列】深入浅出mybatis中原始dao的开发和mapper代理开发
使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法.mybatis在进行dao开发的时候,涉及到三姐妹,分别是SqlSessionFactoryBuilder ...
- Mybatis学习总结(二)——Mapper代理开发
一.概要 1.原始DAO开发中存在的问题:(1)DAO实现方法体中存在很多过程性代码.(2)调用SqlSession的方法(select/insert/update)需要指定Statement的id, ...
- mybatis 学习笔记(三):mapper 代理开发 dao 层
mybatis 学习笔记(三):mapper 代理开发 dao 层 优势 通过使用mapper 代理,我们可以不需要去编写具体的实现类(使用 getMapper() 方法自动生成),只需编写接口即可, ...
- mabatis--使用mapper代理开发dao
1.编写mapper.xml映射文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE m ...
- Mybatis 和Spring整合之mapper代理开发
F:\1ziliao\mybatis\代码 1.1 SqlMapConfig.xml <?xml version="1.0" encoding="UTF-8&quo ...
- Mybatis的mapper代理开发dao方法
看完了之前的mybatis原始的dao开发方法是不是觉得有点笨重,甚至说没有发挥mybatis 作为一个框架的优势.总结了一下,原始的dao方法有以下几点不足之处 dao接口实现方法中存在大量的模板方 ...
随机推荐
- UNIX网络编程读书笔记:recv和send函数
这两个函数类似于标准的read和write函数,不过需要一个额外的参数. #include <sys/socket.h> ssize_t recv(int sockfd, void *bu ...
- Php自动备份数据库实现方法
然后再服务器开启 定时任务执行这个方法即可.
- 微信小程序弹窗组件
概述 自己封装的一个比较简单微信弹窗小组件,主要就是教会大家对微信小组件的用法和理解,因为微信小程序对组件介绍特别少,所以我就把自己的理解分享给大家 详细 代码下载:http://www.demoda ...
- 【Redis】redis+php处理高并发,很好的教程||附上 php的文件锁
链接至:http://blog.csdn.net/nuli888/article/details/51865401 很好的教程,其中redis+php有点小问题. 附上php文件锁: $fp = fo ...
- phpstorm设置断点调试
环境是:wamp PHP Version: 5.5.12 网上的教程很多,我自己按照教程操作,实现了断点调试,下面是我设置断点调试的步骤 1.修改配置文件php.ini,按下面修改(位置在最后) ; ...
- Redis总结(一)Redis安装(转载)
最近项目中需要使用Redis,刚好这两天有时间,便总结记录一下Redis的安装,以及如何在.NET中使用Redis. Redis是一个用的比较广泛的Key/Value的内存数据库.目前新浪微博.Git ...
- C# 图片转换为base64
WebRequest webRequest = WebRequest.Create("验证码url"); WebResponse webResponse = webRequest. ...
- 【HTML5 】手机重力与方向感应的应用——摇一摇效果
http://www.helloweba.com/view-blog-287.html HTML5有一个重要特性:DeviceOrientation,它将底层的方向和运动传感器进行了高级封装,它使我们 ...
- Hexo快速搭建静态博客并实现远程VPS自动部署
这篇文章将如何搭建hexo,以及如何通过git webhooks实现远程vps的自动部署 这篇文件适合的条件: 简单的用于个人博客.公司博客展示,hexo的定位是静态博客,要实现动态服务器的功能并不适 ...
- scrapy添加 请求头
直接在 setting 文件中添加