mybatis集成到spring的方式详解

关于“mybatis集成到spring的方式详解”的完整攻略,以下是步骤及示例。

1. 引入相关依赖

在pom.xml文件中引入mybatis和mybatis-spring的依赖,如下所示:

<!-- MyBatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.6</version>
</dependency>

<!-- MyBatis-Spring -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>2.0.6</version>
</dependency>

2. 添加数据源配置

在Spring的配置文件中,添加数据源配置,如下所示:

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/demo?serverTimezone=UTC" />
    <property name="username" value="root" />
    <property name="password" value="root" />
</bean>

3. 配置SqlSessionFactory

在Spring的配置文件中,添加SqlSessionFactory的配置,如下所示:

<bean id="sqlSessionFactory"
    class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="typeAliasesPackage" value="com.example.dao" />
    <property name="mapperLocations"
        value="classpath*:com/example/dao/*.xml" />
</bean>

其中,typeAliasesPackage指定映射类所在的包,mapperLocations指定mapper文件的路径。

4. 注册Mapper接口

在Spring的配置文件中,注册Mapper接口,如下所示:

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.example.dao" />
</bean>

其中,basePackage指定Mapper接口所在的包。

示例1:操作MySQL数据库

  • 创建数据库表

使用以下SQL语句,在MySQL数据库中创建一个user表:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
  • 创建映射类

在com.example.dao包中创建UserMapper.java类,定义查询user表的方法:

public interface UserMapper {
    List<User> findAll();
}
  • 创建映射文件

在com.example.dao包中创建UserMapper.xml文件,编写查询user表的SQL语句:

<?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.example.dao.UserMapper">
    <select id="findAll" resultType="com.example.entity.User">
        SELECT * FROM user
    </select>
</mapper>
  • 创建实体类

在com.example.entity包中创建User.java类,定义对应user表的实体类:

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    private Integer age;
}
  • 编写测试代码

在com.example包中创建TestUserMapper.java类,编写测试代码,如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring.xml"})
public class TestUserMapper {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testFindAll() {
        List<User> list = userMapper.findAll();
        System.out.println(list);
    }
}
  • 运行测试代码

运行TestUserMapper.java类中的测试方法,可以看到查询结果输出到控制台。

示例2:操作Oracle数据库

  • 修改数据源配置

在Spring的配置文件中,修改数据源配置,如下所示:

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
    <property name="username" value="scott" />
    <property name="password" value="tiger" />
</bean>
  • 编写查询SQL语句

在Oracle数据库中,创建一个dept表,并插入一些数据,使用以下SQL语句:

CREATE TABLE dept (
    deptno NUMBER(2) PRIMARY KEY,
    dname VARCHAR2(14),
    loc VARCHAR2(13)
);

INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
  • 创建映射类

在com.example.dao包中创建DeptMapper.java类,定义查询dept表的方法:

public interface DeptMapper {
    List<Dept> findAll();
}
  • 创建映射文件

在com.example.dao包中创建DeptMapper.xml文件,编写查询dept表的SQL语句:

<?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.example.dao.DeptMapper">
    <select id="findAll" resultType="com.example.entity.Dept">
        SELECT * FROM dept
    </select>
</mapper>
  • 创建实体类

在com.example.entity包中创建Dept.java类,定义对应dept表的实体类:

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class Dept {
    private Integer deptno;
    private String dname;
    private String loc;
}
  • 编写测试代码

在com.example包中创建TestDeptMapper.java类,编写测试代码,如下所示:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:spring.xml"})
public class TestDeptMapper {

    @Autowired
    private DeptMapper deptMapper;

    @Test
    public void testFindAll() {
        List<Dept> list = deptMapper.findAll();
        System.out.println(list);
    }
}
  • 运行测试代码

运行TestDeptMapper.java类中的测试方法,可以看到查询结果输出到控制台。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mybatis集成到spring的方式详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Spring源码分析容器启动流程

    下面是针对“Spring源码分析容器启动流程”的完整攻略。 1. 前言 Spring是一个非常流行的Java开发框架,它最基本的组成部分就是一个IOC容器。在了解Spring的使用过程中,我们需要知道Spring容器启动的过程,这样可以更好的理解Spring的原理和运作机制。 2. Spring容器启动流程概述 Spring容器启动流程可以分为以下几个基本步…

    Java 2023年5月31日
    00
  • java IO流读取图片供前台显示代码分享

    下面是Java IO流读取图片供前台显示的完整攻略: 一、概述 在Java中,使用IO流读取图片供前台显示可以分为以下几个步骤: 使用Java IO流读取图片文件到内存中; 将读取到的图片字节流转换为Base64编码; 将Base64编码的图片数据返回给前台。 二、代码示例 以下是两条示例代码,可以供您参考: 使用FileInputStream和ByteAr…

    Java 2023年5月19日
    00
  • java泛型基本知识及通用方法

    关于“java泛型基本知识及通用方法”的完整攻略,我来详细讲解一下。 什么是Java泛型 Java泛型是Java5中引入的一项新特性,它可以让我们更加方便、安全地处理不同类型的数据,同时也可以提高代码的重用性。 泛型的基本用法 Java泛型通过将类型作为参数传入来实现,从而实现对不同类型数据的处理。 泛型类 在Java中,我们可以通过声明一个泛型类来实现对不…

    Java 2023年5月19日
    00
  • 详解Springboot2.3集成Spring security 框架(原生集成)

    我来为你详细讲解“详解Springboot2.3集成Spring security框架(原生集成)”的完整攻略。 1. 简介 Spring Security是Spring Framework的一个安全框架,为Spring应用程序提供综合的认证(Authentication)和授权(Authorization)解决方案。这个框架提供了一种方式来将应用程序的用户…

    Java 2023年5月20日
    00
  • Java判断两个日期相差天数的方法

    下面我来详细讲解“Java判断两个日期相差天数的方法”的完整攻略。 1. 获取两个日期对象 首先需要获取两个日期对象,可以使用Java中的日期类——java.util.Date或java.time.LocalDate。这里提供两种方式: 1.1 使用java.util.Date Date date1 = new SimpleDateFormat("…

    Java 2023年5月20日
    00
  • Java模拟实现一个基于文本界面的《记账软件》

    /**@author: Noiimplant*@version: 1.0*/ 1. 利用java实现简易记账软件 根据尚硅谷java教程进行练习 2. 实现功能 记录家庭支出、收入,打印收支明细表 使用分级菜单的方式 3. 代码实现 3.1 GuliAccount.java package GuliAccount; import java.text.Simp…

    Java 2023年4月27日
    00
  • Java MyBatis可视化代码生成工具使用教程

    下面是详细的Java MyBatis可视化代码生成工具使用教程攻略: 1. 下载安装Java MyBatis可视化代码生成工具 Java MyBatis可视化代码生成工具是基于Java语言实现的代码生成工具,可以生成具有MyBatis框架的Java代码。你可以从官网下载该工具并进行安装。 2. 连接数据库 Java MyBatis可视化代码生成工具需要连接数…

    Java 2023年5月20日
    00
  • Servlet Filter过滤器执行顺序

    当一个请求到达Web服务器时,它必须经过多个阶段才能到达最终的目标。Servlet Filter作为一种Web组件,常常用于在请求进入目标资源之前或之后进行请求预处理或响应处理。因此,了解Servlet Filter过滤器的执行顺序很重要。 Servlet Filter过滤器执行顺序如下: 1.容器首先对incoming request进行过滤匹配,寻找所有…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部