MyBatis,Spring整合简易教程

http://limingnihao.iteye.com/blog/1060764



在实际的项目开发中,我们需要将MyBatis和Spring进行整合,通过Spring 的依赖注入以减少代码的耦合。本文以MyEclipse和MySQL数据库为开发环境简单的讲解一下MyBatis和Spring的整合过程。 


首先我们创建一个Java Project,名称任意,然后导入所需要包: spring3.1.1 mybatis-3.1.1.jar mysql-connector-java-5.1.2-beta-bin.jar  , mybatis-spring-1.1.1.jar  

第一步:创建数据库表  
在Navicat下执行如下sql命令创建表User. 

Sql代码   收藏代码
  1. CREATE TABLE user  
  2. (  
  3.   id int(11) NOT NULL AUTO_INCREMENT,  
  4.   username varchar(20) NOT NULL,  
  5.   password varchar(20) NOT NULL,  
  6.   PRIMARY KEY (id)  
  7. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;  

然后插入测试数据 
Sql代码   收藏代码
  1. INSERT INTO user VALUES ('1''admin''admin');  


第二步:创建model  
创建一个model包并在其下创建一个User.java文件。 
Java代码   收藏代码
  1. package model;  
  2.   
  3. public class User {  
  4.     private int id;  
  5.     private String username;  
  6.     private String password;  
  7.     public User(){  
  8.           
  9.     }  
  10.     public int getId() {  
  11.         return id;  
  12.     }  
  13.     public void setId(int id) {  
  14.         this.id = id;  
  15.     }  
  16.     public String getUsername() {  
  17.         return username;  
  18.     }  
  19.     public void setUsername(String username) {  
  20.         this.username = username;  
  21.     }  
  22.     public String getPassword() {  
  23.         return password;  
  24.     }  
  25.     public void setPassword(String password) {  
  26.         this.password = password;  
  27.     }  
  28.     public String toString(){  
  29.          return "User [id = "+ id +" , username = "+ username +"]" + " , password = "+ password;  
  30.     }  
  31. }  


第三步:创建DAO接口(这里我们对增删改查进行简单的实现)  
创建一个包dao,并在其下创建一个UserMapper.java文件作为DAO接口。 
Java代码   收藏代码
  1. package dao;  
  2.   
  3. import model.User;  
  4.   
  5. public interface UserMapper {  
  6.     public User selectUser(User user);  
  7.     public void insertUser(User user);  
  8.     public void updateUser(User user);  
  9.     public void deleteUser(int userId);  
  10. }  


第四步:实现DAO接口  
在dao包下创建一个UserMapper.xml文件作为上一步创建的DAO接口的实现。 
Xml代码   收藏代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3. <mapper namespace="dao.UserMapper">  
  4. <select id="selectUser" parameterType="model.User" resultType="model.User">  
  5.     SELECT * FROM user WHERE username=#{username} AND password=#{password}  
  6. select>  
  7. <insert id="insertUser" parameterType="model.User" flushCache="true">  
  8.    INSERT INTO user (id,username,password) VALUES (#{id},#{username},#{password})  
  9. insert>  
  10. <update id="updateUser" parameterType="model.User">  
  11.     UPDATE user SET password=#{password} WHERE id=#{id}  
  12. update>  
  13. <delete id="deleteUser" parameterType="int">  
  14.     DELETE FROM user WHERE id=#{userId}  
  15. delete>  
  16. mapper>  

这里对这个xml文件作几点说明: 
1. namespace要指定为接口的类路径。 
2. select,insert,update,delete的id必须要和UserMapper.java接口中的方法同名。 

第五步:创建MyBatis的配置文件  
在src下创建一个mybatis-config.xml文件,由于我们的数据源部分是要交给Spring管理,所以此处的配置文件只包含xml映射文件的位置信息。 
Xml代码   收藏代码
  1. xml version="1.0" encoding="UTF-8" ?>  
  2.     "-//mybatis.org//DTD Config 3.0//EN"  
  3.     "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  4. <configuration>  
  5.     <mappers>  
  6.         <mapper resource="dao/UserMapper.xml"/>  
  7.     mappers>  
  8. configuration>  


第六步:在Spring中配置数据源  
在src下创建一个ApplicationContext.xml文件作为Spring的配置文件,这里我们使用Spring自带的Jdbc数据源,读者可以根据实际需要替换为其他数据源。 
Xml代码   收藏代码
  1. xml version="1.0" encoding="UTF-8"?>  
  2. <beans  
  3.     xmlns="http://www.springframework.org/schema/beans"  
  4.     xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     xmlns:p="http://www.springframework.org/schema/p"  
  6.     xmlns:aop="http://www.springframework.org/schema/aop"   
  7.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  8.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  9.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   
  10.     http://www.springframework.org/schema/tx   
  11.     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd   
  12.     http://www.springframework.org/schema/aop    
  13.     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">  
  14. >  
  15.     <bean id="jdbcDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
  16.     <property name="driverClassName">  
  17.         <value>org.gjt.mm.mysql.Drivervalue>  
  18.     property>  
  19.     <property name="url">  
  20.         <value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8value>  
  21.     property>  
  22.     <property name="username">  
  23.         <value>rootvalue>  
  24.     property>  
  25.     <property name="password">  
  26.         <value>123456value>  
  27.     property>  
  28. bean>  
  29. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  30.     <property name="dataSource" ref="jdbcDataSource" />  
  31.     <property name="configLocation" value="classpath:mybatis-config.xml">property>  
  32. bean>  
  33. <bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">  
  34.     <property name="mapperInterface" value="dao.UserMapper">property>  
  35.     <property name="sqlSessionFactory" ref="sqlSessionFactory">property>  
  36. bean>  
  37. beans>  

关于Spring配置的说明: 
Spring没有内置的提供对MyBatis的支持,配置sqlSessionFactory和userMapper所需要的class是来自于mybatis-spring-1.1.1.jar。 

第七步:测试  
在src下创建一个test包,并在其下创建一个test.java文件 
Java代码   收藏代码
  1. package test;  
  2.   
  3. import model.User;  
  4.   
  5. import org.springframework.context.ApplicationContext;  
  6. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  7.   
  8. import dao.UserMapper;  
  9.   
  10. public class test {  
  11.     public static void main(String[] args) {  
  12.         ApplicationContext ctx=null;  
  13.         ctx=new ClassPathXmlApplicationContext("applicationContext.xml");  
  14.         UserMapper userMapper=(UserMapper)ctx.getBean("userMapper");  
  15.         User u=new User();  
  16.         u.setUsername("admin");  
  17.         u.setPassword("admin");  
  18.         System.out.println(userMapper.selectUser(u));  
  19.         //插入(去掉下面的注释进行调试)  
  20.         /* 
  21.         User insertUser=new User(); 
  22.         insertUser.setUsername("testUsername"); 
  23.         insertUser.setPassword("testPassword"); 
  24.         userMapper.insertUser(insertUser); 
  25.         */  
  26.         //更新(去掉下面的注释进行调试)  
  27.         /* 
  28.         u.setId(1); 
  29.         u.setPassword("updatePassword"); 
  30.         userMapper.updateUser(u); 
  31.         */  
  32.         //删除(去掉下面的注释进行调试)  
  33.         /* 
  34.         userMapper.deleteUser(9); 
  35.         */  
  36.     }  
  37. }  

你可能感兴趣的:(Spring)