下面是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
- 在
pom.xml
中添加MyBatis和MyBatis-Spring-Boot-Starter依赖,示例代码如下:
```
<!-- MyBatis-Spring-Boot-Starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
```
- 在
application.yml
中配置MyBatis相关参数,示例代码如下:
mybatis:
type-aliases-package: com.example.demo.model # 实体类所在的包路径
mapper-locations: classpath:mapper/*.xml # mapper.xml文件所在路径
- 创建实体类和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
}
```
```xml
<select id="getAllUsers" resultMap="userMap">
select id, name, age from user
</select>
```
- 在
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等代码,提高开发效率。
- 在
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>
- 在
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&serverTimezone=Asia/Shanghai&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>
```
- 在IDEA终端中运行以下maven命令,即可生成对应的Model和Mapper等代码:
mvn mybatis-generator:generate
- 在
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);
}
}
```
- 测试代码同第一个示例,启动应用,并访问
http://localhost:8080/users
,查看查询结果。
至此,Spring Boot整合MyBatis的两个示例都完成了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合mybatis简单案例过程解析 - Python技术站