开始之前:

首先安装Mysql数据库,创建数据库并建表user如下,同时自行创建对应的VO:

  1. DROP TABLE IF EXISTS `user`;
  2. CREATE TABLE `user` (
  3. `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID',
  4. `avatar_id` bigint DEFAULT NULL COMMENT '头像',
  5. `email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '邮箱',
  6. `enabled` bigint DEFAULT NULL COMMENT '状态:1启用、0禁用',
  7. `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '密码',
  8. `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户名',
  9. `phone` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号码',
  10. `create_time` datetime DEFAULT NULL COMMENT '创建日期',
  11. `last_password_reset_time` datetime DEFAULT NULL COMMENT '最后修改密码的日期',
  12. `nick_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  13. `sex` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
  14. PRIMARY KEY (`id`) USING BTREE,
  15. UNIQUE KEY `UK_kpubos9gc2cvtkb0thktkbkes` (`email`) USING BTREE,
  16. UNIQUE KEY `username` (`username`) USING BTREE,
  17. KEY `FKpq2dhypk2qgt68nauh2by22jb` (`avatar_id`) USING BTREE
  18. ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 ROW_FORMAT=COMPACT COMMENT='系统用户';
  19. SET FOREIGN_KEY_CHECKS = 1;

添加依赖

Mysbatis需要以数据库驱动作为前提,因此,此处同时添加了Mysql驱动。

  1. <!--mysql-->
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. <scope>runtime</scope>
  6. </dependency>
  7. <!--mybatis-->
  8. <dependency>
  9. <groupId>org.mybatis.spring.boot</groupId>
  10. <artifactId>mybatis-spring-boot-starter</artifactId>
  11. <version>1.3.2</version>
  12. </dependency>

添加Dao接口

在启动类所在路径添加daomapper包用以存放Dao操作的接口。在该包中创建UserMapper.java接口,代码如下:

  1. package online.yuluo.demo.mapper;
  2. @Repository
  3. public interface UserMapper {
  4. // @Select("select * from user")
  5. List<User> queryUsers(User user);
  6. }

简析:

  1. @Repository@Component的子注解,能使该接口注册为Bean;
  2. Mybatis也提供了注解来应对一些CURD操作,因此,@Select注解可以取代第三步的XML配置操作,二选一即可。这里建议简单的操作可通过注解形式完成,复杂的操作还是使用XML配置来完成。

添加配置文件

resource资源文件夹中创建mapper文件夹用以存放Mybatis对应的XML配置文件。

在mapper文件夹创建名为UserMapper.xml的文件,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="online.yuluo.demo.mapper.UserMapper">
  5. <select id="queryUsers"
  6. resultType="online.yuluo.demo.domain.User">
  7. SELECT * from user
  8. </select>
  9. </mapper>

简析:

  1. 工作空间namespace字段的值对应第二步中dao接口的相对路径;
  2. 查询操作的ID名称对应接口中的方法名称;
  3. 返回值类字段型resultType对应接口返回值类型对象的相对路径。

添加项目全局配置

在项目配置文件application.propertiesapplication.yml中添加数据库连接信息及Mybatis映射信息:

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/blog?useSSL=false&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&useSSL=false # 数据库URL
  4. username: root # 数据库用户名
  5. password: ***** # 数据库密码
  6. driver-class-name: com.mysql.jdbc.Driver
  7. mybatis:
  8. mapper-locations: classpath:mapper/*.xml #Mybatis的XML配置文件地址
  9. type-aliases-package: online.yuluo.demo.domain #实体对象地址

注意

  1. MySQL6.0之后的连接驱动名称为com.mysql.cj.jdbc.Driver
  2. URL设置东八区:serverTimezone=Asia/Shanghai
    1. #postgresql
    2. spring:
    3. datasource:
    4. url: jdbc:postgresql://localhost:5432/postgres?useSSL=false&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&useSSL=false # 数据库URL
    5. username: postgres # 数据库用户名
    6. password: 123456 # 数据库密码
    7. driver-class-name: org.postgresql.Driver

    添加Mapper扫描

在项目启动文件中添加Mapper扫描注解帮助系统发现mapper文件:

  1. @SpringBootApplication
  2. @MapperScan("online.yuluo.demo.mapper")
  3. public class DemoApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(DemoApplication.class, args);
  6. }
  7. }