mybatis--整合spring
来源:互联网 发布:贪心算法教学视频 编辑:程序博客网 时间:2024/06/02 22:57
mybatis整合spring
一、整合思路
1、 数据源信息交给spring管理
2、 SqlSessionFactory交给spring进行单例管理
3、 由spring来管理原始dao的实现类或者mapper代理的代理类。
二、需求
使用原始dao方式和mapper代理方式实现以下功能:
根据用户ID查询商品信息
三、工程搭建
l Mysql的驱动包
l Mybatis的核心包和依赖包
l Mybatis和spring的整合包
l Spring的包
l dbcp数据库连接池包
四、具体整合
1、整合配置文件
(1)mybatis
在config下,创建mybatis目录,然后创建SqlMapConfig.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 自定义别名 --><typeAliases><package name="com.itheima.ms.po" /></typeAliases><!-- 加载映射文件 --><mappers><mapper resource="mybatis/sqlmap/User.xml" /></mappers></configuration>
将db.properties和log4j.properties拷贝到config目录下。
(2)spring
在config下,创建spring目录,然后创建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 "><!-- 加载java的配置文件 --><!-- 如果是web工程 ,就需要加classpath --><context:property-placeholder location="db.properties" /><!-- 创建数据源 --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="${db.driver}" /><property name="url" value="${db.url}" /><property name="username" value="${db.username}" /><property name="password" value="${db.password}" /><property name="maxActive" value="10" /><property name="maxIdle" value="5" /></bean><!-- SqlSessionFactory --><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 指定mybatis的全局配置文件的路径 --><property name="configLocation" value="mybatis/SqlMapConfig.xml"></property><!-- 数据源 --><property name="dataSource" ref="dataSource"></property></bean></beans>
2、整合代码
(1)原始dao开发方式
1.1映射文件:
在config/mybatis下创建sqlmap,然后创建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"><mapper namespace="test"><!-- 根据用户ID查询用户信息 --><select id="findUserById" parameterType="int" resultType="user">SELECT * FROM USER WHERE id =#{id}</select></mapper>
1.2Dao代码
Dao接口:
public interface UserDao {// 1、 根据用户ID查询用户信息public User findUserById(int id) throws Exception;}
Dao实现类:
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao {@Overridepublic User findUserById(int id) throws Exception {return this.getSqlSession().selectOne("test.findUserById", id);}}
1.3配置dao实现类:
在applicationContext.xml中配置UserDao实现类
<!-- UserDao --><bean id="userDao" class="com.itheima.ms.dao.UserDaoImpl"><!-- 依赖注入SqlSessionFactory --><property name="sqlSessionFactory" ref="sqlSessionFactory"></property></bean>
1.4测试代码:
public class UserDaoTest {private ApplicationContext applicationContext;@Beforepublic void setUp() throws Exception {applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");}@Testpublic void testFindUserById() throws Exception {// 创建UserDaoUserDao dao = (UserDao) applicationContext.getBean("userDao");User user = dao.findUserById(1);System.out.println(user);}}
(2)Mapper代理方式
2.1映射文件UserMapper.xml:
将映射文件放到UserMapper接口的同包下
<?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"><mapper namespace="com.itheima.ms.mapper.UserMapper"><!-- 根据用户ID查询用户信息 --><select id="findUserById" parameterType="int" resultType="User">SELECT * FROM USER WHERE id =#{id}</select></mapper>
2.2Mapper接口
public interface UserMapper {// 1、 根据用户ID查询用户信息public User findUserById(int id) ;}
2.3配置mapper代理类
在applicationContext.xml中配置:
(1)单个mapper代理类配置
<!-- 配置UserMapper代理类 --><bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"><!-- 设置代理类的接口 --><property name="mapperInterface" value="com.itheima.ms.mapper.UserMapper"></property><!-- 依赖注入SqlSessionFactory --><property name="sqlSessionFactory" ref="sqlSessionFactory"></property></bean>
(2)批量设置mapper代理类
<!-- 批量配置mapper代理类,默认bean的id为类名首字母小写 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 配置扫描的包 --><property name="basePackage" value="com.itheima.ms.mapper"></property><!-- 默认不需要配置SqlSessionFactory(只有一个SqlSessionFactory时),单独配置也可以 --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property></bean>
2.4测试
public class UserMapperTest {private ApplicationContext applicationContext;@Beforepublic void setUp() throws Exception {applicationContext = new ClassPathXmlApplicationContext("spring/applicationContext.xml");}@Testpublic void testFindUserById() {UserMapper mapper = (UserMapper) applicationContext.getBean("userMapper");User user = mapper.findUserById(1);System.out.println(user);}}
0 0
- Mybatis -- Mybatis整合Spring
- 【Mybatis】Mybatis整合spring
- 【Spring+Mybatis】Spring整合Mybatis
- MyBatis-----2、MyBatis整合Spring
- Spring整合Mybatis
- spring整合myBatis
- MyBatis-Spring框架整合
- MyBatis+Spring整合示例
- MyBatis+Spring整合示例
- MyBatis+Spring整合方案
- spring + struts2 + mybatis整合
- Spring整合Mybatis
- Mybatis整合Spring
- Spring Mybatis 整合
- spring整合MyBatis
- Mybatis整合Spring
- MyBatis+Spring整合示例
- maven+spring+mybatis整合
- Eclipse的使用
- Java命名规范
- FAAC源码阅读(2)——AAC的编解码流程
- Direct3D---三维世界中摄像机的构建
- 【JavaScript】使用Chrome进行调试(如何使用Chrome开发者工具)
- mybatis--整合spring
- C# 索引器和运算符的重载
- MyBatis(六) resultMap 多表查询 之(一)
- Xib使用之TableViewCell.xib中创建多个Cell
- 反射基础二
- Clustering by fast search and find of density peaks总结
- .net 网站应对压力的一些方案总结
- 连接AWS的DynamoDB例子(scala版)
- Java设计模式之行为型模式(状态模式)