zoukankan      html  css  js  c++  java
  • 5.mybatis实战教程(mybatis in action)之五:与spring3集成(附源码)

    转自:https://blog.csdn.net/nnn9223643/article/details/41962097

    在 这一系列文章中,前面讲到纯粹用mybatis 连接数据库,

    然后 进行增删改查,以及多表联合查询的的例子,

    但实际项目中,通常会用 spring 这个沾合剂来管理 datasource 等。

    充分利用spring 基于接口的编程,以及aop ,ioc 带来的方便。

    用spring 来管理 mybatis 与管理hibernate 有很多类似的地方。今天的重点就是数据源管理以及 bean的配置。


    1. 首先对前面的工程结构做一点改变,在src_user源代码目录下建立文件夹config ,

    并将原来的 mybatis 配置文件 Configuration.xml 移动到这个文件夹中,

    并在config 文家夹中建立 spring 配置文件:applicationContext.xml ,这个配置文件里最主要的配置:

     1 <!--本示例采用DBCP连接池,应预先把DBCP的jar包复制到工程的lib目录下。 --> 
     2 
     3   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
     4      <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
     5      <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis?characterEncoding=utf8"/> 
     6      <property name="username" value="root"/> 
     7      <property name="password" value="password"/> 
     8   </bean> 
     9 //SqlSessionFactoryBean--为整合应用提供SqlSession对象资源--就是中间件所需的处理类
    10   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    11      <!--dataSource属性指定要用到的连接池--> 
    12      <property name="dataSource" ref="dataSource"/> 
    13      <!--configLocation属性指定mybatis的核心配置文件  Mybatis自身的配置文件,一般用来声明别名--> 
    14      <property name="configLocation" value="config/Configuration.xml"/> 
    15   </bean> 
    16  //MapperFactoryBean--根据指定的Mapper接口生成Bean实例
    17   <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"> 
    18      <!--sqlSessionFactory属性指定要用到的SqlSessionFactory实例--> 
    19      <property name="sqlSessionFactory" ref="sqlSessionFactory" /> 
    20      <!--mapperInterface属性指定映射器接口,用于实现此接口并生成映射器对象--> 
    21      <property name="mapperInterface" value="com.yihaomen.mybatis.inter.IUserOperation" /> 
    22   </bean> 

    [b]这里面的重点就是 org.mybatis.spring.SqlSessionFactoryBean 与 org.mybatis.spring.mapper.MapperFactoryBean[b] 实现了 spring  的接口,

    并产生对象。详细可以查看 mybatis-spring 代码。(http://code.google.com/p/mybatis/),如果仅仅使用,固定模式,这样配置就好。

     1 package com.yihaomen.test;
     2 
     3 import java.util.List;
     4 
     5 import org.springframework.context.ApplicationContext;
     6 import org.springframework.context.support.ClassPathXmlApplicationContext;
     7 
     8 import com.yihaomen.mybatis.inter.IUserOperation;
     9 import com.yihaomen.mybatis.model.Article;
    10 import com.yihaomen.mybatis.model.User;
    11 
    12 
    13 public class MybatisSprintTest {
    14     
    15     private static ApplicationContext ctx;  
    16     
    17     static 
    18     {  
    19         ctx = new ClassPathXmlApplicationContext("config/applicationContext.xml");  
    20     }        
    21       
    22     public static void main(String[] args)  
    23     {  
    24         IUserOperation mapper = (IUserOperation)ctx.getBean("userMapper"); 
    25         //测试id=1的用户查询,根据数据库中的情况,可以改成你自己的.
    26         System.out.println("得到用户id=1的用户信息");
    27         User user = mapper.selectUserByID(1);
    28         System.out.println(user.getUserAddress()); 
    29         
    30         //得到文章列表测试
    31         System.out.println("得到用户id为1的所有文章列表");
    32         List<Article> articles = mapper.getUserArticles(1);
    33         
    34         for(Article article:articles){
    35             System.out.println(article.getContent()+"--"+article.getTitle());
    36         }
    37         
    38     }  
    39 
    40     
    41 }

    运行即可得到相应的结果.
    工程图:

    用到的jar包,如下图:

  • 相关阅读:
    HDU 2196 Computer
    HDU 1520 Anniversary party
    POJ 1217 FOUR QUARTERS
    POJ 2184 Cow Exhibition
    HDU 2639 Bone Collector II
    POJ 3181 Dollar Dayz
    POJ 1787 Charlie's Change
    POJ 2063 Investment
    HDU 1114 Piggy-Bank
    Lca hdu 2874 Connections between cities
  • 原文地址:https://www.cnblogs.com/sharpest/p/5357280.html
Copyright © 2011-2022 走看看