前面讲到纯粹用mybatis 连接数据库,然后 进行增删改查,以及多表联合查询的的例子,但实际项目中,通常会用 spring 这个沾合剂来管理 datasource 等。充分利用spring 基于接口的编程,以及aop ,ioc 带来的方便。用spring 来管理 mybatis 与管理hibernate 有很多类似的地方。今天的重点就是数据源管理以及 bean的配置。
Spring作为基础框架,可以集成后端框架,如Hibernate,MyBatis等。
前面介绍单独使用MyBatis的,大致逻辑是:
sqlSessionFactory <- configuration file (包括数据库连接配置) IXxxMapper <- sqlSession <- sqlSessionFactory <- mapper interface <- mapper xml
得到IxxMapper后,就可以调用其方法进行数据交互了。
和Spring集成时,上面的这些对象需要作为bean来管理:
dataSource bean <- 数据库连接配置 sqlSessionFactory bean <- dataSource <- configuration file userMapper bean <- sqlSessionFactory <- mapper interface
一.工程结构图
二.在类路径下创建beans-da.xml文件
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><!-- 数据库连接bean --> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://10.60.222.65:3306/test?characterEncoding=utf8" /> <property name="username" value="test" /> <property name="password" value="test" /> </bean> <!-- sqlSessionFactory bean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /><!-- 数据源 --> <property name="configLocation" value="classpath:Configuration.xml" /><!-- 配置文件 --> </bean> <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"><!-- user映射bean--> <property name="sqlSessionFactory" ref="sqlSessionFactory" /> <property name="mapperInterface" value="com.bijian.study.dao.IUserMapper" /><!-- 映射接口 --> </bean> </beans>
三.applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:property-placeholder location="classpath:/database.properties" /><!-- 数据库配置文件 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" p:driverClassName="${driverClassName}" p:url="${url}" p:username="${user_name}" p:password="${password}" /><!-- 数据源配置 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- sqlSessionFactory对象 --> <property name="dataSource" ref="dataSource" /><!-- 数据源 --> <property name="configLocation" value="classpath:Configuration.xml" /><!-- myBatis配置文件 --> <!--<property name="mapperLocations" value="classpath*:com/bijian/study/model/*.xml" />--><!-- 可以在Configuration.xml或此处配置映射文件,但其中不能有相同id的parameterMap, resultMap或sql等 --> </bean> <bean id="mapperConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 扫描指定包以获取映射器 --> <property name="basePackage" value="com.bijian.study.dao" /> </bean> </beans>
四.测试类
package com.bijian.study.test; import java.util.List; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.bijian.study.dao.IUserMapper; import com.bijian.study.model.Article; import com.bijian.study.model.User; public class SpringIntegrationTest { private static final Logger log = LoggerFactory.getLogger(SpringIntegrationTest.class); private static ApplicationContext ctx; static { ctx = new ClassPathXmlApplicationContext("beans-da.xml"); } @Test public void queryTest() { IUserMapper mapper = (IUserMapper)ctx.getBean("userMapper"); User user = mapper.getUserById(1); log.info("Name: {}, address: {}", user.getName(), user.getAddress()); //得到文章列表测试 log.info("得到用户id为1的所有文章列表"); List<Article> articles = mapper.getArticlesByUserId(1); for(Article article:articles){ log.info(article.getContent() + "--" + article.getTitle() + "--" + article.getUser().getName()); } } }
相关推荐
SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+Mybatis集成开发环境SpringMVC+Spring+...
NULL 博文链接:https://shmilyaw-hotmail-com.iteye.com/blog/2360287
该项目通过springcloud集成了mybatis操作mysql数据库,项目主要分为7个model模块,配置模块(config),注册模块(discovery),监控模块(monitor),服务模块_mybatisService(通过mybatis操作mysql),服务模块_...
spring集成mybatis,资源包括: 中文版MyBatis 3 User Guide.pdf mybatis-spring集成指导.pdf Mybatis.pdf mybatis-3.2.8.jar mybatis-spring-1.2.2.jar
mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in ...
SpringMVC+Spring+Mybatis集成开发环境
mybatis-spring集成 mybatis-spring集成 mybatis-spring集成
spring mvc与mybatis的集成
一般使用mybatis的环境,大多都是别人已经配置好的。直接用就好了,如何自己搭建呢?其实很简单。看官方的文档就可以解决了。主要为了学习mybatis最基础的配置。我文章中的方法不基于spring,一般很少会在真实项目中...
这是一个web程序的后台代码,整合了spring mvc和mybatis的配置,实现了各地方的电量增删改查,该代码持久层利用mybatis框架,简化了dao层的实现,spring实现了controller层、service层。
mybatis-plus学习,spring和mybatis-plus集成配置
MyBatis与Spring Boot集成 MyBatis Spring-Boot-Starter将帮助您将MyBatis与Spring Boot结合使用 要求 master(2.1.x):MyBatis 3.5 +,MyBatis-Spring 2.0+(推荐2.0.4 +),Java 8+和Spring Boot 2.1+ 2.0.x:...
Spring与MyBatis集成步骤,内含简单的集成步骤及样例,易懂
Mybatis 最小依赖jar 不集成spring 联系版本,适合初学者自己写个小demo
Spring集成Mybatis所需jar包
需要使用的Jar包:mybatis 3 2 2 jar(mybatis核心包) mybatis spring 1 2 1 jar 与Spring结合包
spring4.0 集成 tk.mybatis插件,增删改无需增删改查,快速开发
Spring与Mybatis项目的集成,加上事务的配置。 后面会再上传+SpringMVC和+Shiro后的项目。