SpringBoot整合mybatis简单案例过程解析

下面是Spring Boot整合MyBatis的攻略过程,包含两条示例:

一、创建Spring Boot项目

首先,我们需要创建一个Spring Boot项目,可以使用IDEA直接创建,也可以使用Spring Initializr创建。

使用Spring Initializr创建项目时,需要勾选Web、MyBatis和MySQL等必要的依赖。创建完成后,项目结构大致如下:

├── src
|   ├── main
|   |   ├── java
|   |   |   └── com.example
|   |   |       └── demo
|   |   |           └── DemoApplication.java
|   |   └── resources
|   |       ├── application.yml
|   |       ├── mapper
|   |       ├── static
|   |       └── templates
└── pom.xml

二、配置MySQL数据库

application.yml中配置MySQL数据库连接信息,示例代码如下:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver  # MySQL8.x以上版本需指定驱动版本
    url: jdbc:mysql://localhost:3306/db_example?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: root
    password: root

三、配置MyBatis

  1. pom.xml中添加MyBatis和MyBatis-Spring-Boot-Starter依赖,示例代码如下:

```



org.mybatis
mybatis
3.5.7

   <!-- MyBatis-Spring-Boot-Starter -->
   <dependency>
       <groupId>org.mybatis.spring.boot</groupId>
       <artifactId>mybatis-spring-boot-starter</artifactId>
       <version>2.2.0</version>
   </dependency>


```

  1. application.yml中配置MyBatis相关参数,示例代码如下:

mybatis:
type-aliases-package: com.example.demo.model # 实体类所在的包路径
mapper-locations: classpath:mapper/*.xml # mapper.xml文件所在路径

  1. 创建实体类和Mapper接口及Mapper.xml文件,示例代码如下:

```java
// 实体类
package com.example.demo.model;

public class User {
private Integer id;
private String name;
private Integer age;

   // getter和setter方法

}
```

```java
// Mapper接口
package com.example.demo.mapper;

import com.example.demo.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserMapper {
List getAllUsers();
}
```

```xml






   <select id="getAllUsers" resultMap="userMap">
       select id, name, age from user
   </select>

```

  1. DemoApplication.java中添加@MapperScan注解,示例代码如下:

```java
package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```

四、编写Controller和View

创建UserController并编写一个方法getAllUsers(),示例代码如下:

package com.example.demo.controller;

import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

@Controller
public class UserController {
    @Autowired
    private UserMapper userMapper;

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

创建users.html视图文件,用于展示查询结果,示例代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>Users</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Age</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="user : ${users}">
                <td th:text="${user.id}"></td>
                <td th:text="${user.name}"></td>
                <td th:text="${user.age}"></td>
            </tr>
        </tbody>
    </table>
</body>
</html>

五、启动测试

启动应用,并访问http://localhost:8080/users,查看查询结果。

六、第二个示例:MyBatis Generator自动生成代码

MyBatis Generator是一个可以自动生成MyBatis代码的工具,它能够根据数据库结构生成Model和Mapper等代码,提高开发效率。

  1. pom.xml中添加Mybatis-Generator插件,示例代码如下:

xml
<build>
<plugins>
<!-- MyBatis Generator插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.4.0</version>
<dependencies>
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.21</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>Generate MyBatis Artifacts</id>
<phase>package</phase>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>

  1. src/main/resources目录下创建generator/generatorConfig.xml文件,示例代码如下:

```xml

   <context id="mysql" targetRuntime="MyBatis3">
       <!-- 数据库连接 -->
       <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver" connectionURL="jdbc:mysql://localhost:3306/db_example?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;allowPublicKeyRetrieval=true" userId="root" password="root"/>

       <!-- 指定Model、Mapper和Mapper XML文件的生成目录 -->
       <javaModelGenerator targetPackage="com.example.demo.model" targetProject="src/main/java"/>
       <sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources"/>
       <javaClientGenerator targetPackage="com.example.demo.mapper" targetProject="src/main/java" type="XMLMAPPER"/>

       <!-- 指定需要生成的表 -->
       <table schema="" tableName="user"></table>

       <!-- 注释 -->
       <commentGenerator>
           <property name="suppressAllComments" value="false"/>
       </commentGenerator>

       <!-- 实体类属性对应数据库字段 -->
       <columnOverride column="id" property="id" javaType="java.lang.Integer"/>
       <columnOverride column="name" property="name" javaType="java.lang.String"/>
       <columnOverride column="age" property="age" javaType="java.lang.Integer"/>
   </context>


```

  1. 在IDEA终端中运行以下maven命令,即可生成对应的Model和Mapper等代码:

mvn mybatis-generator:generate

  1. DemoApplication.java中添加@MapperScan注解,示例代码如下:

```java
package com.example.demo;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.example.demo.mapper")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```

  1. 测试代码同第一个示例,启动应用,并访问http://localhost:8080/users,查看查询结果。

至此,Spring Boot整合MyBatis的两个示例都完成了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合mybatis简单案例过程解析 - Python技术站

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

相关文章

  • Windows下tomcat安装教程

    下面是“Windows下Tomcat安装教程”的完整攻略。 准备工作 下载并安装JDK 访问JDK官网,根据你的Windows系统下载并安装对应版本的JDK。 安装JDK时记得要设置环境变量。 下载Tomcat 访问Tomcat官网,下载并选择合适的Tomcat版本。 下载完成后,解压Tomcat并将其放置在某个目录下。 安装Tomcat 打开命令提示符(W…

    Java 2023年5月19日
    00
  • 详解SpringBoot中的统一功能处理的实现

    我会从以下几个方面讲解“详解SpringBoot中的统一功能处理的实现”: 1.什么是SpringBoot中的统一功能处理2.实现统一功能处理的方式3.示例1:统一异常处理4.示例2:统一日志处理 1.什么是SpringBoot中的统一功能处理 在SpringBoot应用中,我们常常需要实现一些特定的功能,如统一异常处理、统一日志处理等。为了避免在每个Con…

    Java 2023年5月15日
    00
  • 三步轻松搭建springMVC框架

    当您想要使用SpringMVC框架构建Web应用程序时,按照以下三个步骤操作可以轻松完成: 第一步 – 配置SpringMVC标准Maven依赖项 SpringMVC是Spring框架的一部分。要在您的项目中使用它,您需要首先添加SpringMVC的Maven依赖项。 以下是配置SpringMVC标准Maven依赖项的步骤: 打开您的项目的pom.xml文件…

    Java 2023年5月16日
    00
  • Java构造方法 super 及自定义异常throw合集详解用法

    Java构造方法 super 及自定义异常 throw 合集详解用法 构造方法 super Java中一个类可以有多个构造方法,开发者可以选择不同的构造方法来满足不同的需求,但是必须保证类中至少存在一个构造方法。在子类构造方法中除了继承父类构造方法外,还有另外一种重要的方式——调用父类构造方法,可以使用super()或super(参数)语句来实现。 supe…

    Java 2023年5月27日
    00
  • 详解Java中使用ImageIO类对图片进行压缩的方法

    下面我来详细讲解Java中使用ImageIO类对图片进行压缩的方法。 1. 使用ImageIO类加载图片 在Java中使用ImageIO类来加载图片,可以使用以下代码: BufferedImage image = ImageIO.read(new File("image.jpg")); 上述代码中的image.jpg是需要压缩的图片的文件…

    Java 2023年5月26日
    00
  • java图片添加水印实例代码分享

    Java图片添加水印实例代码分享 在Java开发中,我们可能需要将水印添加到图片中,以保护图片的版权或者其他需求。下面是Java图片添加水印的完整攻略。 准备工作 在项目中添加以下依赖: <dependency> <groupId>com.github.vividsolutions</groupId> <artifa…

    Java 2023年6月15日
    00
  • Spring Security配置多个数据源并添加登录验证码的实例代码

    下面我会给你详细讲解Spring Security配置多个数据源并添加登录验证码的实例代码。 1. 添加验证码 首先,我们需要添加验证码功能。我们可以通过在Spring Security过滤器链中添加一个自定义的过滤器来完成此操作。具体实现如下: public class ValidateCodeFilter extends OncePerRequestFi…

    Java 2023年6月3日
    00
  • Java访问数据库实例详解

    Java访问数据库实例详解 本文将详细讲解如何使用Java语言访问数据库,包括连接数据库、增删改查等基本操作。 连接数据库 Java程序可以通过JDBC(Java Database Connectivity) API来连接数据库,同样也需要使用数据库驱动程序。下面是一个使用MySQL数据库连接的示例代码: import java.sql.Connection…

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