spring与mybatis四种整合方法

原创 2017年01月03日 15:17:12

一、采用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>

建立表:

CREATETABLE t_app_student

( idVARCHAR(32) NOT NULL PRIMARY KEY,

  name VARCHAR(15),

  sex VARCHAR(2),

  age INT

)

 

2、创建actionservicedaoentity

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、创建actionservicedaoentity

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、创建actionservicedaoentity

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、创建actionservicedaoentity

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;
    }
 
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Hibernate中各种查询方法的总结

Hibernate中各种查询方法的总结:1.     使用HQL语句Query q = session.createQuery("select e from com.sun.demo.Emp e");...

hibernate的三种查询方式

Hibernate的查询方式 hibernate的查询方式常见的主要分为三种: HQL, QBC(命名查询), 以及使用原生SQL查询(SqlQuery) 一、HQL查询 • H...

spring与mybatis的几种整合方式。

1. 使用sqlSessionTemplate方式整合。 其中:applicationContext.xml 实例配置如下     xmlns:aop="http://www.springfram...

深入浅出Mybatis-与Spring集成

单独使用mybatis是有很多限制的(比如无法实现跨越多个session的事务),而且很多业务系统本来就是使用spring来管理的事务,因此mybatis最好与spring集成起来使用。 本文通过循序...

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合...

SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

使用SSM(Spring、SpringMVC和Mybatis)已经有三个多月了,项目在技术上已经没有什么难点了,基于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录SSM整合...

spring与mybatis四种整合方法

spring与mybatis三种整合方法

Mybatis3+Spring4+SpringMVC4 整合

首先在整合这个框架的时候,想想其一般的步骤是怎样的,先有个步骤之后,不至于在后面的搞混了,这样在整合的时候也比较清晰些。 然后我们就细细的一步一步来整合。 1  创建一个Web项目。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)