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;

    }

 

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章