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日

相关文章

  • servlet 解决乱码问题

    当使用servlets编写Java Web应用程序时,遇到乱码问题是非常常见的情况。在处理用户提交的数据、渲染html页面等场景下,可能会出现中文乱码的问题,这时就需要使用一些技巧来解决。下面是详细的“servlet 解决乱码问题”的完整攻略以及两条实例: 1. 字符编码设置 HTTP请求的Content-Type头部包含一个编码标志,表示请求中发送的正文编…

    Java 2023年5月20日
    00
  • Java正则表达式的基本用法和实例大全

    Java正则表达式的基本用法和实例大全 正则表达式是一种强大的文本匹配工具,Java的java.util.regex包提供了对正则表达式的支持。本文将详细介绍Java正则表达式的基本用法和实例大全。 基本用法 常用的正则表达式元字符 正则表达式元字符指代特殊的字符集,用于表示某种类别的字符。以下是常用的正则表达式元字符。 .:表示任意单个字符。 *:表示前面…

    Java 2023年5月26日
    00
  • Java运算符从见过到掌握上

    Java运算符是Java语言中非常重要的一个概念。它是程序员进行各种运算操作所必需的。从见过到掌握,需要我们经过以下步骤: 一、了解Java运算符的分类 Java运算符包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和三目运算符。 算术运算符:+,-,*,/,%,++,–。 赋值运算符:=,+=,-=,*=,/=,%=等等。 比较运算符:==,…

    Java 2023年5月20日
    00
  • Java实现KFC点餐系统过程解析

    Java实现KFC点餐系统过程解析 KFC点餐系统是一种常见的餐饮行业管理系统,它通常具备点餐、下单、处理订单、计算账单、管理运营等多项功能。Java作为一门跨平台的编程语言,它的面向对象特性和易学程度,使其被广泛应用于KFC点餐系统的开发中。 1. 确定需求功能 在开发KFC点餐系统前,首先需要明确该点餐系统要实现哪些功能。比如,该点餐系统需要实现菜单浏览…

    Java 2023年5月30日
    00
  • 深入浅出重构Mybatis与Spring集成的SqlSessionFactoryBean(上)

    让我来为你介绍一下“深入浅出重构Mybatis与Spring集成的SqlSessionFactoryBean(上)”的完整攻略。 首先,这篇文章主要介绍如何深入学习和理解MyBatis与Spring集成的SqlSessionFactoryBean,并重构该类以更好地适应不同的应用场景。下面我会根据文章的结构和内容,逐一为你进行讲解和说明。 第一部分:介绍Sq…

    Java 2023年5月19日
    00
  • 从Spring迁移到Spring Boot的方法步骤

    从Spring迁移到SpringBoot主要需要将项目的配置文件进行改造,主要的改造点是将原来手动配置的部分,改为使用SpringBoot提供的依赖自动配置的机制。下面是从Spring迁移到SpringBoot的方法步骤: 1. 配置文件的改造 SpringBoot采用了约定优于配置的原则,它提供了一些默认的配置,让我们可以快速地启动和搭建项目。因此,在迁移…

    Java 2023年5月15日
    00
  • 什么是EVB?EVB技术的简单介绍

    下面是关于EVB的详细讲解。 什么是EVB? EVB全称为Evaluation Board(评估板),是一种硬件开发工具,用于快速评估和开发不同种类的芯片、模块、传感器等硬件设备。它通常包括主板、外设接口、调试器等硬件和相关的软件开发工具。EVB与PCB(Printed Circuit Board,印刷电路板)相比,更注重快速原型和快速评估,能够快速搭建出一…

    Java 2023年6月15日
    00
  • 微信小程序template模板与component组件的区别和使用详解

    微信小程序template模板与component组件的区别和使用详解 在微信小程序开发过程中,template和component是两个经常用到的概念。它们可以用来复用一些公共的代码和样式,也能使代码更加简洁易读。本文将详细讲解template模板和component组件的相关概念、特点、用法以及注意事项,并通过示例代码进行说明和实践。 template模…

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