spring和mybatis整合(三)

一、方法:

  1、导入jar包

  

  2、配置数据信息

    1)Spring加Mybatis的第一种整合方法


<!-- 描述数据源信息 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
  <property name="username" value="root"/>
  <property name="password" value="0000"/>
</bean>

<!-- 描述会话工厂对象 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="configLocation" value="classpath:configuration.xml"/>
  <property name="mapperLocations">
  <list>
    <value>com/entity/*.xml</value>
  </list>
  </property>
</bean>

<!-- 描述一个会话对象 -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
  <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
</bean>

      测试类


public static void main(String[] args) {
  ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml");
  SqlSession session = (SqlSession)txt.getBean("sqlSession");
  List<Type> list = session.getMapper(TypeMapper.class).findAll();
  System.out.println(list.size());
}

    2)Spring加Mybatis的第二种整合方法


<!-- 描述数据源信息 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
  <property name="username" value="root"/>
  <property name="password" value="0000"/>
</bean>

<!-- 描述会话工厂对象 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="configLocation" value="classpath:configuration.xml"/>
  <property name="mapperLocations">
  <list>
    <value>com/entity/*.xml</value>
  </list>
  </property>
</bean>

<!-- 创建接口的实现类 -->
<bean id="typeMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
  <property name="sqlSessionFactory" ref="sqlSessionFactoryBean"/>
  <property name="mapperInterface" value="com.mapper.TypeMapper"/>
</bean>

<!-- 描述service -->
<bean id="typeService" class="com.service.TypeService">
  <property name="typepMapper" ref="typeMapper"></property>
</bean>

      测试类


public static void main(String[] args) {
  ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml");
  TypeService typeService = txt.getBean(TypeService.class);
  System.out.println(typeService.findAll().size());
}

    3)Spring加Mybatis的第三种整合方法


<!-- 描述数据源信息 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
  <property name="username" value="root"/>
  <property name="password" value="0000"/>
</bean>

<!-- 描述会话工厂对象 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="configLocation" value="classpath:configuration.xml"/>
  <property name="mapperLocations">
    <list>
      <value>com/entity/*.xml</value>
    </list>
  </property>
</bean>

<!-- 为包下的所有接口创建对应的实现类对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.mapper"></property>
</bean>

<bean id="typeService" class="com.service.TypeService">
  <property name="typepMapper" ref="typeMapper"></property>
</bean>

    测试类


public static void main(String[] args) {
  ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml");
  TypeService ts = (TypeService)txt.getBean("typeService");
  System.out.println(ts.findAll().size());
}

二、spring 声明式事物

  声明事物的配置文件


<!-- 描述数据源信息 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
  <property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
  <property name="username" value="root"/>
  <property name="password" value="0000"/>
</bean>

<!-- 描述会话工厂对象 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource"/>
  <property name="configLocation" value="classpath:configuration.xml"/>
  <property name="mapperLocations">
  <list>
    <value>com/entity/*.xml</value>
  </list>
  </property>
</bean>

<!-- 为包下的所有接口创建对应的实现类对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
  <property name="basePackage" value="com.mapper"></property>
</bean>

<bean id="typeService" class="com.service.TypeService">
  <property name="typepMapper" ref="typeMapper"></property>
</bean>

<!-- 添加事物 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  <property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 定义一个通知 -->
<tx:advice id="m1">
  <tx:attributes>
    <tx:method name="add*"/>
  </tx:attributes>
</tx:advice>
<aop:config>
  <aop:pointcut expression="execution(* com.service.*.*(..))" id="txt1"/>
  <aop:advisor advice-ref="m1" pointcut-ref="txt1"/>
</aop:config>

  测试类


public static void main(String[] args) {
  ApplicationContext txt = new ClassPathXmlApplicationContext("applicationContext.xml");
  TypeService ts = txt.getBean(TypeService.class);

  List<Type> list = new ArrayList<Type>();
  Type t1 =new Type();
  t1.setTname("哈哈");
  list.add(t1);
  Type t2 =new Type();
  t2.setTname("呵呵");
  list.add(t2);
  Type t3 =new Type();
  t3.setTname("嘿嘿");
  list.add(t3);
  ts.addBatch(list);

}

  

  注解式事物


<!-- 描述数据源信息 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="0000"/>
</bean>

<!-- 描述会话工厂对象 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:configuration.xml"/>
<property name="mapperLocations">
<list>
<value>com/entity/*.xml</value>
</list>
</property>
</bean>

<!-- 为包下的所有接口创建对应的实现类对象 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.mapper"></property>
</bean>

<bean id="typeService" class="com.service.TypeService">
<property name="typepMapper" ref="typeMapper"></property>
</bean>

<!-- 添加事物 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>

<!-- 加载声明驱动 -->
<tx:annotation-driven/>

<!-- 定义一个通知 -->
<!-- <tx:advice id="m1">
<tx:attributes>
<tx:method name="add*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut expression="execution(* com.service.*.*(..))" id="txt1"/>
<aop:advisor advice-ref="m1" pointcut-ref="txt1"/>
</aop:config> -->

    方法类中


public class TypeService {
private TypeMapper typeMapper;

public void setTypepMapper(TypeMapper typeMapper) {
  this.typeMapper = typeMapper;
}

public List<Type> findAll(){
  return typeMapper.findAll();
}
public int add(Type type){
  return typeMapper.add(type);
}

@Transactional
public void addBatch(List<Type> list){
  for (int i = 0; i < list.size(); i++) {
    int row = add(list.get(i));
  }
}

}

原文地址:https://www.cnblogs.com/newbest/p/9204522.html

时间: 2024-11-09 22:16:05

spring和mybatis整合(三)的相关文章

Spring之ORM(spring 与mybatis的三种整合实例)

我们知道spring没有提供orm框架但是,提供了很好的和orm框架这个的代沟,我们可以和流行的orm框架进行整合,本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可以通过连接下载http://download.csdn.net/detail/qh_java/8431455 :  1.采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数. (1).Spr

Springmvc+spring+maven+Mybatis整合

随着springmvc及maven越来越受到众多开发者的青睐,笔者主要结合springmvc+maven+spring+Mybatis,搭建一套用于开发和学习的框架.本文将一步步展示整个框架的搭建过程,方便交流和学习. 一.开发环境: windows 8.1 eclipse Luna Service Release 1 (4.4.1) mysql-5.6.19-winx64 maven-3.2.3 jdk 1.7 apache-tomcat-7.0.57 二.主要技术: springmvc +

Spring+SpringMVC +MyBatis整合配置文件案例66666

Spring+SpringMVC +MyBatis整合配置文件案例 标签: springspringmvcmybatismvcjava 2017-04-13 19:12 228人阅读 评论(1) 收藏 举报 分类: java_javaSE(2) 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] Spring+SpringMVC +MyBatis整合配置文件案例 针对spring/SpringMVC/MyBatis三个框架的整合有很多的方式,经过最近的学习我来总结一下其配置文

九 spring和mybatis整合

1       spring和mybatis整合 1.1     整合思路 需要spring通过单例方式管理SqlSessionFactory. spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession.(spring和mybatis整合自动完成) 持久层的mapper都需要由spring进行管理. 1.2     整合环境 创建一个新的java工程(接近实际开发的工程结构) jar包: mybatis3.2.7的jar包 spring3.2.

Spring与Mybatis整合

1.mybatis-spring.jar简介 Spring与Mybatis整合需要引入一个mybatis-spring.jar文件包,该整合包由Mybatis提供,可以从Mybatis官网下载. mybatis-spring.jar提供了下面几个与整合相关的API SqlSessionFactoryBean 为整合应用提供SqlSession对象资源 MapperFactoryBean 根据指定Mapper接口生成Bean实例 MapperScannerConfigurer 根据指定包批量扫描M

spring mvc+mybatis整合 (二)

转:http://lifeneveralone.diandian.com/post/2012-11-02/40042292065 本文介绍使用spring mvc结合Mybatis搭建一个应用程序框架. demo源码下载:springMVC-Mybatis 1.准备工作: spring的jar包: spring-beans-3.1.0.RELEASE.jar spring-core-3.1.0.RELEASE.jar spring-web-3.1.0.RELEASE.jar spring-web

Mybatis学习--spring和Mybatis整合

简介 在前面写测试代码的时候,不管是基于原始dao还是Mapper接口开发都有许多的重复代码,将spring和mybatis整合可以减少这个重复代码,通过spring的模板方法模式,将这些重复的代码进行封装,如:获取SqlSessionFactory.SqlSession.SqlSession的关闭等,我们只需要实现具体的业务处理.另外,spring还利用其IOC将Dao或者Mapper接口的放入到容器中进行管理,更好的实现了解耦. Spring和MyBatis整合 1.整合思路: 需要spri

mybatis学习笔记(14)-spring和mybatis整合

mybatis学习笔记(14)-spring和mybatis整合 mybatis学习笔记14-spring和mybatis整合 整合思路 整合环境 sqlSessionFactory 原始dao开发和spring整合后 mapper代理开发 遇到的问题 本文主要将如何将spring和mybatis整合,只是作简单的示例,没有使用Maven构建.并展示mybatis与spring整合后如何进行原始dao开发和mapper代理开发. 整合思路 需要spring通过单例方式管理SqlSessionFa

Spring和MyBatis整合

spring配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework

spring mvc+mybatis整合

(1) 导入相关包,包结构如下图所示: (2) 修改src/applicationContext.xml文件,结果如下所示: [java] view plaincopy <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org