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日

相关文章

  • JSP监听器用法分析

    JSP监听器用法分析 什么是JSP监听器 JSP监听器是监听JSP页面对象(即JspPage对象)创建、销毁、初始化、属性发生更改和请求响应等事件的一种对象。通过在这些事件发生时执行自定义逻辑进行应用程序的初始化和维护。 JSP监听器的使用 步骤一:编写JSP监听器 实现javax.servlet.jsp.JspPageListener接口。 编写在Jsp创…

    Java 2023年6月15日
    00
  • IDEA使用JDBC安装配置jar包连接MySQL数据库

    下面是详细讲解“IDEA使用JDBC安装配置jar包连接MySQL数据库”的完整攻略。 准备工作 在安装 IntelliJ IDEA 软件后,需要下载安装 MySQL 数据库。 下载 MySQL Connector/J 驱动,这个驱动是针对于连接 MySQL 的 JDBC 驱动。 安装配置 以下是具体步骤: 步骤 1: 添加库 找到项目,右键单击 Java …

    Java 2023年5月20日
    00
  • java算法题解Leetcode763划分字母区间示例

    下面是“java算法题解Leetcode763划分字母区间示例”的完整攻略。 题目描述 给定一个仅包含小写字母的字符串 S,将字符串 S 划分为尽可能多的区间,使得每个字母最多出现在一个区间中,求区间的个数。 解题思路 首先,我们可以使用hashmap记录每个字母最后出现的位置,然后使用两个指针,分别记录当前合法区间的左右端点。 接着,我们遍历字符串S,记录…

    Java 2023年5月19日
    00
  • 一文带你深入了解Java泛型

    一文带你深入了解Java泛型 什么是Java泛型? Java泛型是Java提供的一个强大的工具,它允许我们在编写代码的时候指定类型参数,从而可以在编译时检测类型安全性,避免了许多运行时错误。另外,通过使用泛型,我们还可以编写更加通用、灵活的代码。Java泛型最早出现在JDK1.5版本中,是Java语言中的一个重要特性。 泛型类和泛型接口 Java泛型既可以应…

    Java 2023年5月26日
    00
  • 基于centos自己构建一个tomcat镜像的实现

    要在CentOS上构建自己的Tomcat镜像,可以按照以下步骤: 步骤1:安装Docker Docker是一种容器化平台,我们需要使用它来构建我们的Tomcat镜像。在CentOS上安装Docker的方法可以参考Docker的官方文档。 步骤2:创建一个Dockerfile 在本地创建一个文件夹,用于存储Dockerfile和相关文件,例如: $ mkdir…

    Java 2023年5月19日
    00
  • Java自动生成编号的方法步骤

    当我们在开发Java应用程序时,有时候需要生成一个自增的编号或者序列号,本文将介绍一种生成Java自增序列号的方法。 步骤一:创建序列号的表 我们需要创建一个用于存储自增序列号信息的数据表,包括两个字段,一个是主键字段用于唯一标识该序列,另一个是序列号字段用于表示下一个序列号。 以下是一个示例SQL语句,用于创建一个序列号的MySQL数据表: CREATE …

    Java 2023年5月20日
    00
  • Java实现简易Web服务器

    Java实现简易Web服务器 概述 Web服务器是Web应用程序运行的基础设施之一。本文将介绍如何使用Java编程语言实现一个简单的Web服务器,并提供两个简单的示例说明,帮助理解如何使用此Web服务器。 实现流程 获取客户端请求,解析请求报文,获取客户端请求的资源路径和参数。 判断客户端请求所需资源的类型,是静态资源还是动态资源。 如果是静态资源,则根据资…

    Java 2023年5月18日
    00
  • SpringBoot实现评论回复功能(数据库设计)

    在Spring Boot中实现评论回复功能需要设计相应的数据库结构。以下是一个简单的评论回复数据库设计示例: 数据库设计 评论表 字段名 类型 描述 id bigint 主键 content varchar(255) 评论内容 user_id bigint 用户ID create_time datetime 创建时间 回复表 字段名 类型 描述 id big…

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