spring 梳理12--简单整合mybatis(一)

MyBatis-Spring 可以将 MyBatis 代码无缝地整合到 Spring 中

spring 梳理12--简单整合mybatis(一)

 

 

 

 

如果使用 Maven 作为构建工具,仅需要在 pom.xml 中加入以下代码即可

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>2.0.2</version>
</dependency>

 

 

mybatis和spring的整合其实就是让spring管理我们的SqlSessionFactory ,但是SqlSessionFactory 需要一个数据源,给他一个就行:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
</bean>

 

 

  • 在原生的 MyBatis 用法中,是通过 SqlSessionFactoryBuilder 来创建 SqlSessionFactory 的。而在 MyBatisSpring 中,则使用 SqlSessionFactoryBean 来创建。
  • 在 MyBatis 中,你可以使用 SqlSessionFactory 来创建 SqlSession。一旦你获得一个 session 之后,你可以使用 它来执行映射了的语句,提交或回滚连接,最后,当不再需要它的时候,你可以关闭 session。
  • SqlSessionFactory有一个唯一的必要属性:用于 JDBC 的 DataSource。这可以是任意的 DataSource 对象,它的 配置方法和其它 Spring 数据库连接是一样的。
  • SqlSessionTemplate 是 MyBatis-Spring 的核心。作为 SqlSession 的一个实现,这意味着可以使用它无缝代替你 代码中已经在使用的 SqlSession。
  • 模板可以参与到 Spring 的事务管理中,并且由于其是线程安全的,可以供多个映射器类使用,你应该总是用 SqlSessionTemplate 来替换 MyBatis 默认的 DefaultSqlSession 实现。在同一应用程序中的不同类之间混杂使用 可能会引起数据一致性的问题。

 

 

步骤

1、导入相关jar包<dependencies>  <!-- 单元测试 -->  <dependency>    <groupId>junit</groupId>

    <artifactId>junit</artifactId>
    <version>4.7</version>
    <scope>test</scope>
  </dependency>

  <!-- spring 相关 -->   <dependency>     <groupId>org.springframework</groupId>     <artifactId>spring-webmvc</artifactId>     <version>5.1.10.RELEASE</version>   </dependency>

  <!-- mybatis 相关 -->   <dependency>     <groupId>org.mybatis</groupId>     <artifactId>mybatis</artifactId>     <version>3.5.2</version>   </dependency>

  <!-- 数据库连接驱动 相关 -->   <dependency>     <groupId>mysql</groupId>     <artifactId>mysql-connector-java</artifactId>     <version>5.1.47</version>   </dependency>

  <!-- 提供了对JDBC操作的完整封装 -->   <dependency>     <groupId>org.springframework</groupId>     <artifactId>spring-jdbc</artifactId>     <version>5.1.10.RELEASE</version>   </dependency>

  <!-- 织入 相关 -->   <dependency>     <groupId>org.aspectj</groupId>     <artifactId>aspectjweaver</artifactId>     <version>1.9.4</version>   </dependency>

  <!-- spring,mybatis整合包 -->   <dependency>     <groupId>org.mybatis</groupId>     <artifactId>mybatis-spring</artifactId>     <version>2.0.2</version>   </dependency> </dependencies>


<!-- 资源文件过滤 --> <build>   <resources>     <resource>       <directory>src/main/java</directory>
      <includes>         <include>**/*.properties</include>         <include>**/*.xml</include>       </includes>
      <filtering>false</filtering>
    </resource>

  <resource>     <directory>src/main/resources</directory>     <includes>       <include>**/*.properties</include>       <include>**/*.xml</include>     </includes>     <filtering>false</filtering>   </resource>

</resources> </build>

 

 

编写entity实体类

public class User implements Serializable {
  private int id;
  private String username;
  private String password;
  ...
}

 

 

实现mybatis的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
</configuration>

 

 

UserDao接口编写

public interface UserMapper {
  /**
  * 获取所有的用户
  * @return
  */
  List<User> getAllUsers();
}

 

 

接口对应的Mapper映射文件

<?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.xinzhi.dao.UserMapper">   <select id="getAllUsers" resultType="com.xinzhi.entity.User">     select id,username,password from user   </select> </mapper>

 

上一篇:mybatis学习总结


下一篇:mybatis 源码系列(一) 初始化