mybatis 整合 spring3

来源:互联网 发布:水果超市软件 编辑:程序博客网 时间:2024/05/13 06:51

    因为阴差阳错的原因 Spring3 没有提供对mybatis的整合支持,要整合Spring3和mybatis可以使用下面的方法。


准备:

1、先去mybatis上下载

  • mybatis-3.2.2.zip
  • mybatis-spring-1.2.0-bundle.zip
2、Spring3相关的jar包。

3、apache的DataSource包。
  • commons-pool.jar
  • commons-dbcp.jar


开始:


1、配置spring.xml,其实也没有什么特别的,就是配置SessionFactory的时候使用了mybatis的实现。另外在sessionFactory中配置下mapper信息,有多种配置方式,这里图简便,使用configLocation配置Mapper文件,指定以前mybatis的配置文件就行。其它配置方法可以参考官方文档。

srping.xml

------------------------------

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:beans="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-3.0.xsd"><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName"><value>oracle.jdbc.driver.OracleDriver</value></property><property name="url"><value>jdbc:oracle:thin:@127.0.0.1:1521:XE</value></property><property name="username"><value>hr</value></property><property name="password"><value>hr</value></property></bean><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="configLocation" value="mybatis-config.xml" /></bean><bean id="EmployeeDao" class="com.hr.employee.EmployeeDao"><property name="sqlSessionFactory" ref="sqlSessionFactory"></property></bean></beans>


2、编写mybatis的Mapper文件

EmployeeMapper.xml

------------------------------

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.hr.employee.Employee"><resultMap type="com.hr.employee.EmployeeData" id="EmployeeData"><result column="EMPLOYEE_ID" property="employeeId" /><result column="FIRST_NAME" property="firstName" /><result column="LAST_NAME" property="lastName" /><result column="EMAIL" property="email" /><result column="PHONE_NUMBER" property="phoneNumber" /><result column="HIRE_DATE" property="hireDate" /></resultMap><select id="select" parameterType="com.hr.employee.EmployeeData" resultMap="EmployeeData">select   EMPLOYEES.EMPLOYEE_ID,  EMPLOYEES.FIRST_NAME,  EMPLOYEES.LAST_NAME,  EMPLOYEES.EMAIL,  EMPLOYEES.PHONE_NUMBER,  EMPLOYEES.HIRE_DATEfrom  EMPLOYEESwhere  EMPLOYEES.FIRST_NAME like #{firstName}</select></mapper>


3、Dao要继承mybatis的SqlSessionDaoSupport

EmployeeDao.java

------------------------------

package com.hr.employee;import java.util.List;import org.mybatis.spring.support.SqlSessionDaoSupport;/** * @author jCodeBuilder */public class EmployeeDao extends SqlSessionDaoSupport {    public List<EmployeeData> select(EmployeeData cond) {        return getSqlSession().selectList("com.hr.employee.Employee.select", cond);    }}


4、数据实体

EmployeeData.java

------------------------------

package com.hr.employee;/** * @author jCodeBuilder */public class EmployeeData {        public String employeeId = null;     public String firstName = null;     public String lastName = null;     public String email = null;     public String phoneNumber = null;     public String hireDate = null;     public String getEmployeeId() {        return employeeId;    }    public void setEmployeeId(String val) {        employeeId = val;    }    public String getFirstName() {        return firstName;    }    public void setFirstName(String val) {        firstName = val;    }    public String getLastName() {        return lastName;    }    public void setLastName(String val) {        lastName = val;    }    public String getEmail() {        return email;    }    public void setEmail(String val) {        email = val;    }    public String getPhoneNumber() {        return phoneNumber;    }    public void setPhoneNumber(String val) {        phoneNumber = val;    }    public String getHireDate() {        return hireDate;    }    public void setHireDate(String val) {        hireDate = val;    }    public String toString() {        String s = "";        s += "employeeId=" + employeeId;         s += ", firstName=" + firstName;         s += ", lastName=" + lastName;         s += ", email=" + email;         s += ", phoneNumber=" + phoneNumber;         s += ", hireDate=" + hireDate;         return s;    }    public void clear() {        employeeId = null;        firstName = null;        lastName = null;        email = null;        phoneNumber = null;        hireDate = null;    }    protected void finalize() {        clear();    }}


5、执行

Execute.java

------------------------------

package com.test;import java.util.List;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.hr.employee.EmployeeDao;import com.hr.employee.EmployeeData;public class Execute {    public static void main(String[] args) {        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");        EmployeeDao dao = (EmployeeDao) context.getBean("EmployeeDao");        EmployeeData cond = new EmployeeData();        cond.setFirstName("%%");        List<EmployeeData> result = dao.select(cond);        for (EmployeeData data : result) {            System.out.println(data);        }    }}


更多详细内容请参考官方文档:

http://mybatis.github.io/spring/zh/index.html




原创粉丝点击