spring与mybatis四种整合方法,你会几种?

一、采用org.mybatis.spring.mapper.MapperScannerConfigurer

整体结构如下图:



1、配置文件

1>applicationContext01.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"

  xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"

  xmlns:tx="http://www.springframework.org/schema/tx"xmlns:cache="http://www.springframework.org/schema/cache"

  xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans

     http://www.springframework.org/schema/beans/spring-beans.xsd

    http://www.springframework.org/schema/aop

    http://www.springframework.org/schema/aop/spring-aop.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context.xsd

    http://www.springframework.org/schema/tx

    http://www.springframework.org/schema/tx/spring-tx.xsd

     http://www.springframework.org/schema/cache

    http://www.springframework.org/schema/cache/spring-cache.xsd">

    

    <!-- 自动扫描 -->

    <context:component-scanbase-package="com.hys.app.**.service,com.hys.app.**.dao,com.hys.app.**.action"/>

    <!-- 引入外置文件 -->

    <beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <propertyname="location"value="classpath:jdbc.properties"/>

    </bean>

   

    <!--数据库连接池配置-->

    <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">  

        <propertyname="driverClassName"value="${jdbc.driverClassName}"/>

        <propertyname="url"value="${jdbc.url}"/>

        <propertyname="username"value="${jdbc.username}"/>

        <propertyname="password"value="${jdbc.password}"/>

    </bean>

    <!-- spring和MyBatis完美整合 -->

    <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

        <!-- 指定数据源 -->

        <propertyname="dataSource"ref="dataSource"/>

        <!-- 具体指定xml文件,可不配 -->

        <propertyname="configLocation" value="classpath:mybatis-config.xml"/>

        <!-- 自动扫描mapping.xml文件,**表示迭代查找 ,,也可在mybatis-config.xml中单独指定xml文件 -->

        <propertyname="mapperLocations"value="classpath:com/hys/app/**/dao/*.xml"/>

    </bean>

    <!-- 自动扫描com/hys/app/**/dao下的所有dao接口,并实现这些接口,可直接在程序中使用dao接口,不用再获取sqlsession对象 -->

    <beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">

        <!--

        basePackage 属性是映射器接口文件的包路径。

                 你可以使用分号或逗号 作为分隔符设置多于一个的包路径

        -->

        <propertyname="basePackage"value="com/hys/app/**/dao"/>

        <!--

                 因为会自动装配 SqlSessionFactory和SqlSessionTemplate

                 所以没 有 必 要 去 指 定 SqlSessionFactory或 SqlSessionTemplate

                 因此可省略不配置;

                 但是,如果你使 用了一个 以上的 DataSource,那么自动装配可能会失效。

                 这种 情况下,你可以使用sqlSessionFactoryBeanName或sqlSessionTemplateBeanName属性来设置正确的 bean名称来使用;

        -->

        <propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>

    </bean>

   

    <!-- 事务管理器

    <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

        <propertyname="dataSource" ref="dataSource" />

    </bean>  

    -->

    <!-- 使用声明式事务 

    <tx:annotation-driventransaction-manager="txManager" />

    -->

</beans>

2>jdbc.properties外置文件



jdbc.driverClassName=com.mysql.jdbc.Driver

jdbc.url=jdbc:mysql://localhost:3306/demo?characterEncoding=UTF-8

jdbc.username=root

jdbc.password=root

3>mybatis-config.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">  

<configuration>

    <typeAliases>

       <typeAliastype="com.hys.app.student.entity.Student"alias="Student"/>

    </typeAliases>

</configuration>

4>studentMapper.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mappernamespace="com.hys.app.student.dao.StudentDao">

   

    <insertid="save"parameterType="Student">

        insert intot_app_student(id,name,sex,age) values(#{id},#{name},#{sex},#{age})

    </insert>  

    <selectid="getStudent"resultType="Student"parameterType="String">

        select * from t_app_student where id =#{id}

    </select>  

</mapper>

5>pom.xml


<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>hys.web.project</groupId>

  <artifactId>hys_demo_ssm</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>jar</packaging>

  <name>hys_demo_ssm</name>

  <url>http://maven.apache.org</url>

  <properties>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  </properties>

  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.10</version>

      <scope>test</scope>

    </dependency>

   

    <!-- 数据源 -->

    <dependency>

        <groupId>commons-dbcp</groupId>

        <artifactId>commons-dbcp</artifactId>

        <version>1.4</version>

    </dependency>

   

       <dependency>

       <groupId>mysql</groupId>

       <artifactId>mysql-connector-java</artifactId>

       <version>5.0.8</version>

    </dependency>

   

    <!-- Mybatis3.4.1 -->

    <dependency>

        <groupId>org.mybatis</groupId>

        <artifactId>mybatis</artifactId>

        <version>3.4.1</version>

    </dependency>

   

    <!-- spring整合mybatis -->

    <dependency>

        <groupId>org.mybatis</groupId>

        <artifactId>mybatis-spring</artifactId>

        <version>1.3.0</version>

    </dependency>

   

    <!-- Spring-4.2.0 -->

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-web</artifactId>

        <version>4.2.0.RELEASE</version>

    </dependency>

   

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-orm</artifactId>

        <version>4.2.0.RELEASE</version>

    </dependency>

   

    <dependency>

        <groupId>org.springframework</groupId>

        <artifactId>spring-expression</artifactId>

        <version>4.2.0.RELEASE</version>

    </dependency>

   

  </dependencies>

</project>

建立表: 



CREATE TABLE t_app_student

( id VARCHAR(32) NOT NULL PRIMARY KEY,

  name VARCHAR(15),

  sex VARCHAR(2),

  age INT

)

2、创建action、service、dao、entity类

1>实体类Student


packagecom.hys.app.student.entity;

public class Student {

   

    private Stringid;

    private Stringname;

    private Stringsex;

    private int age;

   

    publicStudent(){

      

    }  

    publicStudent(Stringid, Stringname, Stringsex,intage) {

       this.id =id;

       this.name =name;

       this.sex =sex;

       this.age =age;

    }

    public StringgetId() {

       returnid;

    }

    public void setId(String id) {

       this.id =id;

    }

    public StringgetName() {

       returnname;

    }

    public void setName(String name) {

       this.name =name;

    }

    public StringgetSex() {

       returnsex;

    }

    public void setSex(String sex) {

       this.sex =sex;

    }

    public int getAge() {

       returnage;

    }

    public void setAge(intage) {

       this.age =age;

    }

    @Override

    public StringtoString() {

       return"Student [id=" +id +", name=" +name +", sex=" +sex

              + ", age=" + age + "]";

    }

   

}

2>dao接口


packagecom.hys.app.student.dao;

importcom.hys.app.student.entity.Student;

public interface StudentDao {

   public void save(Student student);

   public Student getStudent(Stringid);

}

3>service服务


packagecom.hys.app.student.service;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Service;

importcom.hys.app.student.dao.StudentDao;

importcom.hys.app.student.entity.Student;

@Service

publicclass StudentService {

   

    @Autowired

    private StudentDao studentDao;

   

    public void save(Student student) {

       studentDao.save(student);

    }

   

    public Student getStudent(String id) {

       Student student =studentDao.getStudent(id);

       return student;

    }

   

}

4>action测试类


packagecom.hys.app.student.action;

importorg.junit.Test;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.context.ApplicationContext;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

importorg.springframework.stereotype.Controller;

importcom.hys.app.student.entity.Student;

importcom.hys.app.student.service.StudentService;

@Controller

publicclass StudentAction {

   

    @Autowired

    private StudentService studentService;

    @Test

    public void test1(){

       //获取上下文对象

       ApplicationContext context =newClassPathXmlApplicationContext("applicationContext01.xml");

       StudentAction studentAction =(StudentAction)context.getBean("studentAction");

      

//     Student student = newStudent("002","小明","男",20);

//     studentAction.studentService.save(student);

       Student std = studentAction.studentService.getStudent("001");

       System.out.println(std);

    }

}


注:重复的文件在下面的例子中不在贴出来,在测试类中注意替换applicationContext01.xml文件名


二、采用数据映射器(MapperFactoryBean)的方式,不用写mybatis映射文件,采用注解方式提供相应的sql语句和输入参数

整体结构如下图:



1、配置文件

applicationContext04.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"

  xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"

  xmlns:tx="http://www.springframework.org/schema/tx"xmlns:cache="http://www.springframework.org/schema/cache"

  xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans

     http://www.springframework.org/schema/beans/spring-beans.xsd

     http://www.springframework.org/schema/aop

    http://www.springframework.org/schema/aop/spring-aop.xsd

    http://www.springframework.org/schema/context

     http://www.springframework.org/schema/context/spring-context.xsd

     http://www.springframework.org/schema/tx

    http://www.springframework.org/schema/tx/spring-tx.xsd

    http://www.springframework.org/schema/cache

    http://www.springframework.org/schema/cache/spring-cache.xsd">

    

    <!-- 自动扫描 -->

    <context:component-scanbase-package="com.hys.app.**.service,com.hys.app.**.dao,com.hys.app.**.action"/>

    <!-- 引入外置文件 -->

    <beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

       <propertyname="location"value="classpath:jdbc.properties"/>

    </bean>

   

    <!--数据库连接池配置-->

    <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">  

       <propertyname="driverClassName"value="${jdbc.driverClassName}"/>

       <propertyname="url"value="${jdbc.url}"/>

       <propertyname="username"value="${jdbc.username}"/>

        <propertyname="password"value="${jdbc.password}"/>

    </bean>

    <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->

    <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

       <propertyname="dataSource"ref="dataSource"/>

    </bean>

    <!--

    创建数据映射器,数据映射器必须为接口

    这种配置方式有个缺点,有多少个dao接口就要配置多少个数据映射器,增加了开发时间

    可用MapperScannerConfigurer代替,能够完全解决问题

   <bean id="studentMapper"class="org.mybatis.spring.mapper.MapperFactoryBean">  

        <propertyname="mapperInterface"value="com.hys.app.student.dao.StudentDao" /> 

        <propertyname="sqlSessionFactory"ref="sqlSessionFactory"/>

   </bean> 

   --> 

   

    <!-- 自动扫描com/hys/app/**/dao下的所有dao接口,并实现这些接口,可直接在程序中使用dao接口,不用再获取sqlsession对象 -->

    <beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">

       <!--

       basePackage 属性是映射器接口文件的包路径。

                 你可以使用分号或逗号作为分隔符设置多于一个的包路径

       -->

       <propertyname="basePackage"value="com/hys/app/**/dao"/>

       <!--

                 因为会自动装配 SqlSessionFactory和SqlSessionTemplate

                 所以没 有 必 要去 指 定 SqlSessionFactory或SqlSessionTemplate

                 因此可省略不配置;

                 但是,如果你使 用了一个 以上的 DataSource,那么自动装配可能会失效。

                 这种 情况下,你可以使用sqlSessionFactoryBeanName或sqlSessionTemplateBeanName属性来设置正确的 bean名称来使用;

       -->

       <propertyname="sqlSessionFactoryBeanName"value="sqlSessionFactory"/>

    </bean>

   

    <!-- 事务管理器

   <bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

       <property name="dataSource" ref="dataSource"/>

   </bean>  

   -->

    <!-- 使用声明式事务 

   <tx:annotation-driven transaction-manager="txManager" />

   -->

</beans>

2、创建action、service、dao、entity类

1>dao接口


packagecom.hys.app.student.dao;

importorg.apache.ibatis.annotations.Insert;

importorg.apache.ibatis.annotations.Select;

importcom.hys.app.student.entity.Student;

publicinterface StudentDao {

    @Insert(" insert intot_app_student(id,name,sex,age) values(#{id},#{name},#{sex},#{age})")

    public void save(Student student);

    @Select("select * from t_app_studentwhere id = #{id}")

    public Student getStudent(String id);

}

2>service服务


packagecom.hys.app.student.service;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Service;

importcom.hys.app.student.dao.StudentDao;

importcom.hys.app.student.entity.Student;

@Service

publicclass StudentService {

   

    @Autowired

    private StudentDao studentDao;

   

    public void save(Student student) {

       studentDao.save(student);

    }

   

    public Student getStudent(String id) {

       Student student =studentDao.getStudent(id);

       return student;

    }

   

}

 三、采用抽象类org.mybatis.spring.support.SqlSessionDaoSupport提供SqlSession

整体结构如下图:



1、配置文件

applicationContext03.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"

  xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"

  xmlns:tx="http://www.springframework.org/schema/tx"xmlns:cache="http://www.springframework.org/schema/cache"

  xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans

     http://www.springframework.org/schema/beans/spring-beans.xsd

     http://www.springframework.org/schema/aop

    http://www.springframework.org/schema/aop/spring-aop.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context.xsd

    http://www.springframework.org/schema/tx

     http://www.springframework.org/schema/tx/spring-tx.xsd

    http://www.springframework.org/schema/cache

    http://www.springframework.org/schema/cache/spring-cache.xsd">

    

    <!-- 自动扫描 -->

    <context:component-scanbase-package="com.hys.app.**.service,com.hys.app.**.dao,com.hys.app.**.action"/>

    <!-- 引入外置文件 -->

    <beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <propertyname="location"value="classpath:jdbc.properties"/>

    </bean>

   

    <!--数据库连接池配置-->

    <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">  

       <propertyname="driverClassName"value="${jdbc.driverClassName}"/>

       <propertyname="url"value="${jdbc.url}"/>

       <propertyname="username"value="${jdbc.username}"/>

        <propertyname="password"value="${jdbc.password}"/>

    </bean>

    <beanname="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

      <propertyname="dataSource"ref="dataSource"/>

      <propertyname="mapperLocations"value="classpath:com/hys/app/**/dao/*.xml"/>

    </bean>

   

    <!-- 将sqlSessionTemplate手工注入到SqlSessionDaoSupport中 -->

    <beanid="sqlSessionTemplate"class="org.mybatis.spring.SqlSessionTemplate">

        <constructor-argindex="0"ref="sqlSessionFactory"/>

    </bean>

   

</beans>

studentMapper.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mappernamespace="com.hys.app.student.dao.StudentDao">

    <insertid="save"parameterType="com.hys.app.student.entity.Student">

        insert intot_app_student(id,name,sex,age) values(#{id},#{name},#{sex},#{age})

    </insert> 

    <selectid="getStudent"resultType="com.hys.app.student.entity.Student"parameterType="String">

        select * from t_app_student where id =#{id}

    </select>   

</mapper>

2、创建action、service、dao、entity类

1>dao接口


packagecom.hys.app.student.dao;

importcom.hys.app.student.entity.Student;

public interface StudentDao {

    public void save(Student student);

    public StudentgetStudent(Stringid);

}

2>dao接口实现类


packagecom.hys.app.student.dao;

importjavax.annotation.Resource;

importorg.mybatis.spring.SqlSessionTemplate;

importorg.mybatis.spring.support.SqlSessionDaoSupport;

importorg.springframework.stereotype.Service;

importcom.hys.app.student.entity.Student;

@Service

publicclass StudentDaoImp extends SqlSessionDaoSupport implements StudentDao{

   

     /**

      * 我们发现这个类中没有把SqlSessionTemplate作为一个属性,因为我们继承了SqlSessionDaoSupport

      *SqlSessionDaoSupport他会提供sqlsession

     */

    @Override

    public void save(Student student) {

       // TODO Auto-generated method stub

       this.getSqlSession().insert("com.hys.app.student.dao.StudentDao.save",student);

    }

    @Override

    public Student getStudent(String id) {   

       // TODO Auto-generated method stub

       returnthis.getSqlSession().selectOne("com.hys.app.student.dao.StudentDao.getStudent",id);

    }

    /**

     * 使用SqlSessionDaoSupport必须注意,此处源码1.1.1中有自动注入,1.2中取消了自动注入,需要手工注入,侵入性强

     * 也可在spring-mybatis.xml中如下配置,但是这种有多少个dao就要配置到多少个,多个dao就很麻烦。

     * <bean id="userDao"class="com.hua.saf.dao.UserDao">

     * <propertyname="sqlSessionFactory" ref="sqlSessionFactory"/>

     * </bean>

     */

    @Resource

    public voidsetSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate){

       super.setSqlSessionTemplate(sqlSessionTemplate);

    }

   

}

3>service服务


packagecom.hys.app.student.service;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Service;

importcom.hys.app.student.dao.StudentDaoImp;

importcom.hys.app.student.entity.Student;

@Service

publicclass StudentService {

   

    @Autowired

    private StudentDaoImp studentDaoImp;

   

    public void save(Student student) {

       studentDaoImp.save(student);      

    }

   

    public Student getStudent(String id) {

       Student student =studentDaoImp.getStudent(id);

       return student;

    }

}

四、采用接口org.apache.ibatis.session.SqlSession的实现类org.mybatis.spring.SqlSessionTemplate

整体结构如下图:



1、配置文件

applicationContext02.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<beansxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://www.springframework.org/schema/beans"

  xmlns:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"

  xmlns:tx="http://www.springframework.org/schema/tx"xmlns:cache="http://www.springframework.org/schema/cache"

  xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beans

     http://www.springframework.org/schema/beans/spring-beans.xsd

    http://www.springframework.org/schema/aop

    http://www.springframework.org/schema/aop/spring-aop.xsd

    http://www.springframework.org/schema/context

    http://www.springframework.org/schema/context/spring-context.xsd

    http://www.springframework.org/schema/tx

    http://www.springframework.org/schema/tx/spring-tx.xsd

    http://www.springframework.org/schema/cache

    http://www.springframework.org/schema/cache/spring-cache.xsd">

    

    <!-- 自动扫描 -->

    <context:component-scanbase-package="com.hys.app.**.service,com.hys.app.**.dao,com.hys.app.**.action"/>

    <!-- 引入外置文件 -->

    <beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

        <propertyname="location"value="classpath:jdbc.properties"/>

    </bean>

   

    <!--数据库连接池配置-->

    <beanid="dataSource"class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close">  

       <propertyname="driverClassName"value="${jdbc.driverClassName}"/>

       <propertyname="url"value="${jdbc.url}"/>

       <propertyname="username"value="${jdbc.username}"/>

        <propertyname="password"value="${jdbc.password}"/>

    </bean>

    <beanname="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">

      <propertyname="dataSource"ref="dataSource"/>

      <propertyname="mapperLocations"value="classpath:com/hys/app/**/dao/*.xml"/>

    </bean>

   

    <!--

       Mybatis-Spring为我们提供了一个实现了SqlSession接口的SqlSessionTemplate类,它是线程安全的,可以被多个Dao同时使用。

       同时它还跟Spring的事务进行了关联,确保当前被使用的SqlSession是一个已经和Spring的事务进行绑定了的。

       而且它还可以自己管理Session的提交和关闭。当使用了Spring的事务管理机制后,SqlSession还可以跟着Spring的事务一起提交和回滚。

    -->

    <beanid="sqlSessionTemplate"class="org.mybatis.spring.SqlSessionTemplate">

        <constructor-argindex="0"ref="sqlSessionFactory"/>

    </bean>

     

</beans>

studentMapper.xml


<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mappernamespace="com.hys.app.student.dao.StudentDao">

    <insertid="save"parameterType="com.hys.app.student.entity.Student">

        insert intot_app_student(id,name,sex,age) values(#{id},#{name},#{sex},#{age})

    </insert>

    <selectid="getStudent"resultType="com.hys.app.student.entity.Student"parameterType="String">

        select * from t_app_student where id =#{id}

    </select>   

</mapper> 

2、创建action、service、dao、entity类

1>dao接口


package com.hys.app.student.dao;

import com.hys.app.student.entity.Student;

public interface StudentDao {

    public void save(Student student);

    public Student getStudent(Stringid);

}

2>service服务


packagecom.hys.app.student.service;

importorg.mybatis.spring.SqlSessionTemplate;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.stereotype.Service;

importcom.hys.app.student.entity.Student;

@Service

publicclass StudentService {

   

    /**

     *sqlSessionTemplate模板提供了sqlsession

     */

   

    @Autowired

    private SqlSessionTemplatesqlSessionTemplate;

   

    public void save(Student student) {

       sqlSessionTemplate.insert("com.hys.app.student.dao.StudentDao.save",student);      

    }

   

    public Student getStudent(String id) {

       Student student =sqlSessionTemplate.selectOne("com.hys.app.student.dao.StudentDao.getStudent",id);

       return student;

    }

}


猜你喜欢

转载自blog.51cto.com/13883927/2344807