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日

相关文章

  • 初识通用数据库操作类——前端easyui-datagrid,form(php)

    初识通用数据库操作类是一篇介绍如何使用easyui-datagrid和easyui-form来进行数据库操作的文章,涉及到的技术有PHP、jQuery、easyui等。 准备工作 在使用easyui-datagrid和easyui-form之前,需要先导入相关的js和css文件以及jQuery库。在此基础上,还需要创建数据库和相应的表格。本篇攻略将以mysq…

    Java 2023年6月15日
    00
  • Java数组的定义、初始化、及二维数组用法分析

    下面我来详细讲解一下Java数组的定义、初始化、及二维数组用法分析的完整攻略。 Java数组的定义 Java数组是由相同类型元素构成的集合,它是一个固定长度的容器,一旦创建后就不能改变其长度,因此Java数组也称为静态数组。在Java中,数组可以存储数值、字符、对象等信息。 Java数组的定义语法如下: 数据类型[] 数组名 = new 数据类型[数组长度]…

    Java 2023年5月26日
    00
  • Spring Boot中是如何处理日期时间格式的

    Spring Boot中处理日期时间格式主要通过在实体类中使用注解@JsonFormat来完成。@JsonFormat是Jackson中的注解,可用于序列化和反序列化Java的日期和时间类型。 以下是处理日期时间格式的详细步骤: 在实体类的日期字段上添加@DateTimeFormat注解来指定日期时间格式,例如:yyyy-MM-dd。 在实体类的日期字段上添…

    Java 2023年5月20日
    00
  • 详解Java中Duration类的使用方法

    详解Java中Duration类的使用方法 Duration 类是Java8中新添加的日期时间类,用于表示时间的持续时间。 在Java中我们可以使用 Duration 类来进行时间的加减操作、比较两个时间点之间的时间差等操作。 下面就让我们来详解Java中 Duration 类的使用方法。 创建 Duration 对象 我们可以使用静态工厂方法 Durati…

    Java 2023年5月20日
    00
  • Servlet与JSP间的两种传值情况

    Servlet与JSP是JavaEE中常见的Web开发组件,二者通常需要交互传递数据才能实现复杂的业务逻辑。下面我将详细讲解Servlet与JSP间的两种传值情况: 1. 通过URL参数传值 通过URL参数传值是Servlet与JSP间最简单的一种传值方式,它将数据作为URL的一部分直接传递给接收方。例如,我们可以在Servlet中使用以下代码设置URL并跳…

    Java 2023年6月15日
    00
  • 详解IDEA搭建springBoot方式一(推荐)

    下面是详细讲解 “详解IDEA搭建springBoot方式一(推荐)” 的完整攻略: 一、前置准备 安装JDK和IntelliJ IDEA。 确认本地已经安装了maven,并且配置了maven环境变量。 二、创建Spring Boot项目 打开IntelliJ IDEA,选择Create New Project。 在左侧的“Spring Initializr…

    Java 2023年5月15日
    00
  • JDBC的扩展知识点总结

    下面我会详细讲解“JDBC的扩展知识点总结”的完整攻略。 JDBC的扩展知识点总结 什么是JDBC Java数据库连接(Java Database Connectivity,简称JDBC)是Java语言中用于执行SQL语句的一组API。通俗地讲,JDBC就是Java语言连接数据库的一个标准规范。使用JDBC,可以使Java程序与任何支持SQL的关系型数据库进…

    Java 2023年5月20日
    00
  • 详解JSON与 Java对象之间的转化

    下面是“详解JSON与Java对象之间的转化”的完整攻略。 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,其语法类似于JavaScript对象。因为其轻量级、易于阅读和编写的特点,被广泛用于Web应用程序之间的数据交换。 JSON由两种数据结构组成: 键值对集合:JSON对象 值的有序列表:JSO…

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