SpringBoot结合Mybatis实现创建数据库表的方法

下面给出Spring Boot结合Mybatis实现创建数据库表的方法攻略。

步骤1:创建Spring Boot项目

首先要创建一个基于Spring Boot的项目,可以使用Spring Initializr快速创建,下面是相关的POM文件配置:

<!-- MyBatis和MyBatis-Spring的依赖 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>

<!-- MySQL连接驱动依赖 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.23</version>
</dependency>

步骤2:配置数据库连接

application.properties 文件中配置数据库连接信息,示例如下:

# MySQL 配置
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=123456

步骤3:编写实体类及Mapper接口

在项目中定义相应的实体类和Mapper接口。实体类应该与数据表的结构信息相同:

@Data
public class User {
    private Integer id;
    private String name;
    private Integer age;
}

Mapper接口中定义需要实现的数据访问函数:

public interface UserMapper {
    List<User> findAll();
    void saveUser(User user);
}

步骤4:编写数据库表SQL语句

编写 schema.sql 文件来创建数据库表,例如下面的SQL语句:

CREATE TABLE `user`
(
    `id`   INT(11) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(50) DEFAULT NULL,
    `age`  INT(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
);

步骤5:创建数据表

在Spring Boot启动时,通过Mybatis的MapperScan注解扫描Mapper接口,然后使用org.springframework.jdbc.core.JdbcTemplate执行上述 schema.sql 文件,来创建数据表:

@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application implements CommandLineRunner {

    private final JdbcTemplate jdbcTemplate;

    @Autowired
    public Application(JdbcTemplate jdbcTemplate) {
        this.jdbcTemplate = jdbcTemplate;
    }

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

    @Override
    public void run(String... args) throws Exception {
        jdbcTemplate.execute("DROP TABLE IF EXISTS `user`;");
        jdbcTemplate.execute("CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`))");
    }
}

示例一:Spring Boot集成Mybatis的RESTful API

下面演示通过SpringBoot结合Mybatis实现一个简单的RESTful API来插入和查询数据,首先是编写controller代码:

@RestController
@RequestMapping("/api/v1/user")
public class UserController {

    private final UserMapper userMapper;

    @Autowired
    public UserController(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    @GetMapping
    public List<User> findAll() {
        return userMapper.findAll();
    }

    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public void saveUser(@RequestBody User user) {
        userMapper.saveUser(user);
    }
}

然后是编写Service代码:

@Service
public class UserServiceImpl implements UserService {

    private final UserMapper userMapper;

    @Autowired
    public UserServiceImpl(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

    @Override
    public void saveUser(User user) {
        userMapper.saveUser(user);
    }
}

最后,编写Mapper代码:

@Mapper
@Repository
public interface UserMapper {
    List<User> findAll();
    void saveUser(User user);
}

示例二:Spring Boot集成Mybatis的Thymeleaf页面应用

下面演示通过SpringBoot结合Mybatis实现一个简单的网站应用,使用Thymeleaf作为页面渲染。首先是编写首页 index.html 的代码:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Spring Boot + MyBatis Example</title>
</head>
<body>
<h1>Hello, Spring Boot + MyBatis</h1>
<table>
    <tr>
        <th>Id</th>
        <th>Name</th>
        <th>Age</th>
    </tr>
    <tr th:each="user : ${users}">
        <td th:text="${user.id}"></td>
        <td th:text="${user.name}"></td>
        <td th:text="${user.age}"></td>
    </tr>
</table>
<br>
<form method="POST" th:action="@{/}">
    <input type="text" name="name" required>
    <input type="number" name="age" required>
    <input type="submit" value="提交">
</form>
</body>
</html>

然后是编写Controller代码:

@Controller
public class UserController {

    private final UserService userService;

    @Autowired
    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("/")
    public String index(Model model) {
        List<User> users = userService.findAll();
        model.addAttribute("users", users);
        return "index";
    }

    @PostMapping("/")
    public String saveUser(User user) {
        userService.saveUser(user);
        return "redirect:/";
    }
}

最后是我们编写的Service代码:

public interface UserService {
    List<User> findAll();
    void saveUser(User user);
}

@Service
public class UserServiceImpl implements UserService {

    private final UserMapper userMapper;

    @Autowired
    public UserServiceImpl(UserMapper userMapper) {
        this.userMapper = userMapper;
    }

    @Override
    public List<User> findAll() {
        return userMapper.findAll();
    }

    @Override
    public void saveUser(User user) {
        userMapper.saveUser(user);
    }
}

Mapper代码如前述第一例子,此处不再赘述。

这就是整个攻略的完整过程,希望能够帮助您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot结合Mybatis实现创建数据库表的方法 - Python技术站

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

相关文章

  • Java的Struts框架报错“DuplicateActionException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“DuplicateActionException”错误。这个错误通常由以下原因之一起: Action重复:如果Action重复,则可能会出现此错误。在这种情况下,需要检查Action以解决此问题。 Action名称重复:如果Action名称重复,则可能会出现此错误。在这种情况下,需要检查Action名称以解决此…

    Java 2023年5月5日
    00
  • Tomcat 9 免安装版配置的图文教程(详)

    下面我将为您详细讲解“Tomcat 9 免安装版配置的图文教程(详)”的完整攻略。 一、前言 在本攻略中,我将为您介绍如何配置Tomcat 9免安装版,以便在Windows电脑上搭建Java Web开发环境。Tomcat是一种非常流行的Java应用服务器,由Apache提供支持,并且具有良好的性能和稳定性。本攻略中的操作步骤适用于Windows 7、Wind…

    Java 2023年5月19日
    00
  • ansible批量部署tomcat的方法

    这里为大家提供一份ansible批量部署tomcat的方法的详细攻略。 准备工作 在开始部署tomcat之前,需要完成以下准备工作: 确保在所有需要部署tomcat的机器上,都已经安装了ansible。 下载并安装Java和tomcat,这里我以centos系统为例。 yum install -y java tomcat 确保部署机器与被部署机器之间已经建立…

    Java 2023年5月20日
    00
  • Java的Struts2框架中拦截器使用的实例教程

    下面我会详细讲解Java的Struts2框架中拦截器使用的实例教程,包括其基本概念、在实际代码中的应用以及两个完整的示例,希望对您有所帮助。 1. Struts2框架中的拦截器 在Struts2框架中,拦截器是非常重要的一环。一般来说,拦截器是在执行Action方法之前或之后的一个组件,用于对用户请求进行拦截、验证或干预。Struts2框架中的每一个请求都必…

    Java 2023年5月20日
    00
  • java代码获取数据库表里数据的总数操作

    让我详细讲解一下关于“Java代码获取数据库表里数据的总数操作”的完整攻略。 1. 通过JDBC获取数据总数 1.1. JDBC连接数据库 首先,我们需要使用JDBC连接到数据库。具体步骤如下: // 加载MySQL JDBC Driver Class.forName("com.mysql.jdbc.Driver"); // 声明MySQ…

    Java 2023年5月20日
    00
  • Java 房屋租赁系统的实现流程

    下面是Java房屋租赁系统的实现流程的完整攻略。 系统设计 功能需求 房源管理 租客管理 订单管理 支付管理 技术需求 JDK版本:1.8以上 数据库:MySQL 框架:Spring Boot+Mybatis 开发工具:eclipse/idea 数据库设计 该系统需要设计三张表:房源表、租客表、订单表。其结构设计如下: 房源表 CREATE TABLE `h…

    Java 2023年5月19日
    00
  • Java计时器工具StopWatch的具体使用

    首先需要了解的是,Java计时器工具StopWatch是一个简洁、轻量级的工具,它可以用来统计代码块、方法或程序的执行时间。下面我将详细讲解它的具体使用过程: 引入StopWatch 使用StopWatch的第一步是需要引入它所在的包,具体代码如下: import org.apache.commons.lang3.time.StopWatch; 其中,org…

    Java 2023年5月20日
    00
  • java复制文件的4种方式及拷贝文件到另一个目录下的实例代码

    Java复制文件的4种方式及拷贝文件到另一个目录下的实例代码 在Java中,复制文件可以使用多种方式,这里详细介绍4种常用的方法及对应的实例代码。 1. 使用 InputStream 和 OutputStream 进行复制 第一种方式是使用 InputStream 和 OutputStream,具体步骤如下: 创建 File 对象表示输入文件和输出文件; 创…

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