码迷,mamicode.com
首页 > 编程语言 > 详细

spring和mybatis整合(三)

时间:2018-06-20 19:00:13      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:border   font   ati   .com   添加   test   config   new   bsp   

一、方法:

  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));
  }
}

}

spring和mybatis整合(三)

标签:border   font   ati   .com   添加   test   config   new   bsp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!