SpringBoot MyBatis简单快速入门例子

下面我为您介绍一下"SpringBoot MyBatis简单快速入门例子"的完整攻略。

1. 概述

Spring Boot 是一种快速开发应用程序的框架,它可以通过简单的配置来启动 Web 应用程序和服务。MyBatis 是一种 Java 持续层框架,它简化了数据库操作的过程。

在本文中,我们将讨论如何在 Spring Boot 中使用 MyBatis 进行数据库交互。

2. 准备工作

首先,您需要安装以下软件:

  • JDK 1.8 或更高版本
  • Maven
  • MySQL 数据库

接下来,我们要创建一个 Spring Boot 项目,可以使用 Spring Boot CLI 或使用 Spring Initializr 在线服务创建项目。为了使用 MyBatis,还需要添加以下依赖项:

<dependencies>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.22</version>
    </dependency>
</dependencies>

3. 编写代码

3.1 配置数据源

application.properties 文件中,配置 MySQL 数据库连接信息:

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_sample?&serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

3.2 编写实体类

src/main/java 目录下创建一个实体类:

public class User {

    private Integer id;
    private String name;
    private String email;
    private String password;

    // 省略 get/set 方法
}

3.3 编写 Mapper 接口和对应的 XML 文件

src/main/resources 目录下创建一个 mapper/UserMapper.xml 文件,然后编写 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.mybatisdemo.mapper.UserMapper">
    <select id="findAll" resultType="com.example.mybatisdemo.entity.User">
        select * from user
    </select>
    <insert id="insert" parameterType="com.example.mybatisdemo.entity.User">
        insert into user(name, email, password) values (#{name}, #{email}, #{password})
    </insert>
</mapper>

接下来创建一个 Mapper 接口 src/main/java/com/example/mybatisdemo/mapper/UserMapper.java

@Mapper
public interface UserMapper {

    @Select("select * from user")
    List<User> findAll();

    @Insert("insert into user(name, email, password) values (#{name}, #{email}, #{password})")
    int insert(User user);

}

3.4 配置 MyBatis

创建一个 MybatisConfig.java 类,配置 MyBatis。

@Configuration
@MapperScan("com.example.mybatisdemo.mapper")
public class MybatisConfig {

    @Autowired
    private DataSource dataSource;

    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSource);
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        sessionFactory.setMapperLocations(resolver.getResources("classpath*:mapper/*.xml"));
        return sessionFactory.getObject();
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource);
    }

}

@MapperScan 中,指定扫描 Mapper 接口包的路径。

3.5 创建启动类

编写一个启动类 src/main/java/com/example/mybatisdemo/MybatisDemoApplication.java

@SpringBootApplication
public class MybatisDemoApplication implements CommandLineRunner {

    @Autowired
    private UserMapper userMapper;

    public static void main(String[] args) {
        SpringApplication.run(MybatisDemoApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("==== findAll ====");
        List<User> users = userMapper.findAll();
        users.forEach(System.out::println);

        System.out.println("==== insert ====");
        User user = new User();
        user.setName("Alice");
        user.setEmail("alice@example.com");
        user.setPassword("123456");
        int rows = userMapper.insert(user);
        System.out.println("rows: " + rows);
    }
}

run 中,我们使用 UserMapper 接口中定义的方法,查询所有用户信息,然后插入一条记录。

4. 运行程序

运行 MybatisDemoApplication 类,然后在控制台看到以下输出:

==== findAll ====
User(id=1, name=Tom, email=tom@example.com, password=123456)
User(id=2, name=Jerry, email=jerry@example.com, password=654321)
==== insert ====
rows: 1

5. 示例

5.1 查询所有用户信息

UserMapper.xml 中添加以下 SQL 语句:

    <select id="findAll" resultType="com.example.mybatisdemo.entity.User">
        select * from user
    </select>

UserMapper 接口中添加方法:

    List<User> findAll();

MybatisDemoApplication 类的 run 方法中添加以下代码:

        System.out.println("==== findAll ====");
        List<User> users = userMapper.findAll();
        users.forEach(System.out::println);

5.2 插入一条记录

UserMapper.xml 中添加以下 SQL 语句:

    <insert id="insert" parameterType="com.example.mybatisdemo.entity.User">
        insert into user(name, email, password) values (#{name}, #{email}, #{password})
    </insert>

UserMapper 接口中添加方法:

    int insert(User user);

MybatisDemoApplication 类的 run 方法中添加以下代码:

        System.out.println("==== insert ====");
        User user = new User();
        user.setName("Alice");
        user.setEmail("alice@example.com");
        user.setPassword("123456");
        int rows = userMapper.insert(user);
        System.out.println("rows: " + rows);

6. 总结

到此,我们已经完成了 Spring Boot 中使用 MyBatis 进行数据库交互的简单快速入门例子。希望本文能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot MyBatis简单快速入门例子 - Python技术站

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

相关文章

  • java中的DateTime的具体使用

    关于Java中DateTime的使用,我来说一下。 什么是DateTime Java中的DateTime类是Java 8引入的日期时间API的一部分,位于java.time包中。它提供了处理日期、时间、时区和持续时间的功能,使得在应用程序中操作日期和时间变得更加方便和易读。 DateTime的常用方法 这里列出一些DateTime类常用的方法: now()方…

    Java 2023年5月20日
    00
  • 常见的Java性能分析工具有哪些?

    常见的Java性能分析工具有以下几种: JProfilerJProfiler是一款商业化的Java性能分析工具,功能非常强大,能够进行内存分析、CPU分析、线程分析、I/O分析、代码分析等。使用JProfiler进行性能分析的步骤如下: 下载并安装JProfiler。 打开JProfiler,在“New Session”中选择要进行性能分析的Java应用程序…

    Java 2023年5月11日
    00
  • Java中类的定义与实例化详解

    Java中的类是面向对象编程的基础,类不仅定义了对象的属性和方法,还可以作为对象的模板来创建具体的实例。 类的定义 Java中,可以通过关键字class来定义一个类,类的定义通常包含以下几个方面: 访问修饰符,可以是public、private、protected或默认不写; 关键字class; 类的名字; 类的属性,包括属性名和属性类型; 类的方法,包括方…

    Java 2023年5月26日
    00
  • 基于Java实现计数排序,桶排序和基数排序

    基于Java实现计数排序、桶排序和基数排序 计数排序(Counting Sort) 计数排序是一种稳定的排序算法,它使用一个计数数组来记录每个元素出现的次数,并按照次数将元素依次输出到结果数组中。 步骤 初始化一个大小为 max_value 的空计数数组 遍历待排序数组,将每个元素出现的次数加入计数数组对应下标中 遍历计数数组,累加每个元素之前出现的次数,得…

    Java 2023年5月19日
    00
  • Java反转字符串的10种方法

    Java反转字符串的10种方法 在Java中,反转字符串是非常常见的操作。在本篇攻略中,我们将会讲解10种Java反转字符串的方法,并详细说明它们的使用场景。以下是我们将要讲解的10种方法: StringBuilder反转法 StringBuffer反转法 toCharArray()反转法 递归反转法 charAt()反转法 CharArray反转法 Str…

    Java 2023年5月26日
    00
  • java正则表达式获取大括号小括号内容并判断数字和小数亲测可用

    下面是详细讲解“java正则表达式获取大括号小括号内容并判断数字和小数亲测可用”的完整攻略。 正则表达式获取大括号小括号内容 获取小括号内的内容 String str = "这是一个测试(string)的字符串"; // 小括号内的正则表达式 String regex = "\\((.*?)\\)"; Pattern …

    Java 2023年5月26日
    00
  • 根据ID填充文本框的实例代码

    下面我会给您详细讲解如何根据ID填充文本框的实例代码,包括代码和步骤: 步骤1:HTML模板 首先,我们需要准备一个HTML模板,包含一个文本框和一个按钮。该文本框将用于显示根据ID填充的结果。示例代码如下: <form> <input type="text" id="myText"> <…

    Java 2023年5月20日
    00
  • JSP基于dom解析xml实例详解

    JSP基于dom解析xml实例详解 什么是DOM解析XML DOM (Document Object Model) 是一种处理 XML 文档的标准 API,它用于读取 XML 文件并解析其中的元素、节点、属性等信息。在 DOM 中,XML 文件会被视为一个树形结构,每个元素都会被视为一个节点,节点与节点之间按照父子关系进行连接,节点与属性之间按照关联关系进行…

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