一. 快速构建SpringBoot应用并引入相关依赖
-
生成的POM文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.leaveyouridea</groupId> <artifactId>mybatis</artifactId> <version>0.0.1-SNAPSHOT</version> <name>mybatis</name> <description>SpringBoot整合Mybatis</description> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.3.0.RELEASE</spring-boot.version> </properties> <dependencies> <!--jdbc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.2</version> </dependency> <!--mysql connector--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
二. 修改配置文件
-
修改配置文件
使用application.yml替换默认生成的application.properties配置文件。
配置文件内容如下:
server: port: 8080 spring: datasource: # 数据库用户名 username: root # 数据库密码 password: 123456 # 数据库访问地址 url: jdbc:mysql://localhost:3306/mybatis_demo?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC # 数据库驱动 driver-class-name: com.mysql.cj.jdbc.Driver mybatis: # mapper.xml文件存放位置 mapper-locations: classpath:mapper/Mapper*.xml # 实体类别名 type-aliases-package: com.leaveyouridea.mybatis.entity
三. 创建相关表和数据
-
数据库脚本
CREATE TABLE `user` ( `id` varchar(50) NOT NULL, `account` varchar(50) DEFAULT NULL, `password` varchar(50) DEFAULT NULL, `host` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) INSERT INTO `user` VALUES ('1', '12580', '123456', 'www.baidu.com');
四. 相关代码编写
-
User实体类
package com.leaveyouridea.mybatis.entity;
/**
* User实体类
*/
public class User {
private String id;
private String account;
private String password;
private String url;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", account='" + account + '\'' +
", password='" + password + '\'' +
", url='" + url + '\'' +
'}';
}
}
-
UserMapper.xml
<?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.leaveyouridea.mybatis.mapper.UserMapper"> <resultMap id="BaseResultMap" type="com.leaveyouridea.mybatis.entity.User"> <result column="id" jdbcType="VARCHAR" property="id" /> <result column="account" jdbcType="VARCHAR" property="account" /> <result column="password" jdbcType="VARCHAR" property="password" /> <result column="url" jdbcType="VARCHAR" property="url" /> </resultMap> <select id="getUserById" resultType="com.leaveyouridea.mybatis.entity.User"> select * from USER where id = #{id} </select> </mapper>
-
UserMapper.java
package com.leaveyouridea.mybatis.mapper; import com.leaveyouridea.mybatis.entity.User; import org.springframework.stereotype.Repository; @Repository public interface UserMapper { User getUserById(String id); }
-
UserService.java
package com.leaveyouridea.mybatis.service; import com.leaveyouridea.mybatis.entity.User; public interface UserService { User getUserById(String id); }
-
UserServiceImpl.java
package com.leaveyouridea.mybatis.service.impl; import com.leaveyouridea.mybatis.entity.User; import com.leaveyouridea.mybatis.mapper.UserMapper; import com.leaveyouridea.mybatis.service.UserService; import org.springframework.stereotype.Service; import javax.annotation.Resource; @Service public class UserServiceImpl implements UserService { @Resource private UserMapper userMapper; @Override public User getUserById(String id) { return userMapper.getUserById(id); } }
-
UserController.java
package com.leaveyouridea.mybatis.controller; import com.leaveyouridea.mybatis.entity.User; import com.leaveyouridea.mybatis.service.UserService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController @RequestMapping("user") public class UserController { @Resource private UserService userService; @GetMapping("/{id}") public String getUserById(@PathVariable String id){ User user = userService.getUserById(id); return user.toString(); } }
-
启动类,需要配置MapperScan扫描mapper接口目录
package com.leaveyouridea.mybatis; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @MapperScan(basePackages = "com.leaveyouridea.mybatis.mapper") public class MybatisApplication { public static void main(String[] args) { SpringApplication.run(MybatisApplication.class, args); } }
-
完成后项目的目录结构