1、pom.xml添加相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
</dependencies>
1.2 在父类的pom.xml中制定相关包的版本号
<!--加载依赖管理-->
<!--注意:如果使用dependencyManagement,只是对版本进行管理,不会直接引入jar -->
<!--是为了在这里配置版本,为了让子模块pom或者本pom的直接dependencies不单独配置版本 -->
<!--如果没有版本,会先到这里找版本号,以免版本冲突 -->
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${alibaba-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.5.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.28</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</dependencyManagement>
2、配置配置文件,添加数据库连接,配置数据库连接池
本例使用的是properties配置文件,也可以根据需要换成yaml配置文件
spring.datasource.url=jdbc:mysql:///test01?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#第五步会增加
mybatis.mapper-locations=classpath:mapper/*.xml
3、添加mapper映射接口
//注意mapper接口的位置,在配置对应xml映射的namespace是一样。这样才会被mybatis完成自动代理
//并且可以根据需要在对应接口添加@Mapper注解或者在启动类添加@MapperScan(basePackages = "com.wolf.mybatis.mapper")注解,两个效果都是一样的,一般建议使用第二种,统一配置扫描,这样接口上什么都可以不用加
public interface UserMapper {
List<User> getAllUser();
Integer addUser(User user);
Integer updateUserById(User user);
Integer deleteUserById(Integer id);
}
4、*mapper.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">
<!--namespace的名称要跟3步骤的mapper接口路径一致,这样mybatis框架完成自动代理-->
<!--配置里面的相关查询方法,要跟接口里面的方法一致-->
<mapper namespace="com.wolf.mybatis.mapper.UserMapper">
<select id="getAllUser" resultType="com.wolf.entity.User">
select * from user
</select>
<insert id="addUser" parameterType="com.wolf.entity.User">
insert into user (username,address) values (#{username},#{address})
</insert>
<update id="updateUserById" parameterType="com.wolf.entity.User">
update user set username=#{username},address=#{address} where id=#{id}
</update>
<delete id="deleteUserById">
delete from user where id=#{id}
</delete>
</mapper>
public class User implements Serializable {
private Integer id;
private String username;
private String address;
public Integer getId() {
return id;
}
}
如果装了mybatis插件,就会有这种提示。然后表示就维护好了
5、此时在application.properties中告诉mybatis去哪里扫描mapper:
mybatis.mapper-locations=classpath:mapper/*.xml
6、启动类配置
@SpringBootApplication
//扫描mapper接口,完成自动代理
@MapperScan(basePackages = "com.wolf.mybatis.mapper")
public class MybatisApplication {
public static void main(String[] args) {
ConfigurableApplicationContext run = SpringApplication.run(MybatisApplication.class, args);
UserMapper bean = run.getBean(UserMapper.class);
List<User> allUser = bean.getAllUser();
System.out.println(JSONUtil.toJsonStr(allUser));
}
}
7、测试用例
控制台就输出从数据库查询的数据
[{"address":"www.javaboy.org","id":1,"username":"javaboy123"},{"address":"spring.javaboy.org","id":3,"username":"javaboy"},{"address":"深圳","id":4,"username":"张三"},{"address":"广州","id":5,"username":"李四"},{"address":"北京","id":6,"username":"王五"}]
8、注意事项
- 有些会报错误
- 检查1 在打包的时候,如果你把mapper.xml配置整到src代码目录,这样maven打包的时候,不会讲xml打包到resource目录,这个时候,需要在maven打包配置,把这个xml打包进来。
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>