SpringBoot集成MyBatisPlus-01簡單入門
1.建立數據表
#建立用戶表 CREATE TABLE user ( id BIGINT(20) PRIMARY KEY NOT NULL COMMENT '主鍵', name VARCHAR(30) DEFAULT NULL COMMENT '姓名', age INT(11) DEFAULT NULL COMMENT '年齡', email VARCHAR(50) DEFAULT NULL COMMENT '郵箱', manager_id BIGINT(20) DEFAULT NULL COMMENT '直屬上級id', create_time DATETIME DEFAULT NULL COMMENT '建立時間', CONSTRAINT manager_fk FOREIGN KEY (manager_id) REFERENCES user (id) ) ENGINE=INNODB CHARSET=UTF8; #初始化數據: INSERT INTO user (id, name, age, email, manager_id , create_time) VALUES (1087982257332887553, '大boss', 40, 'boss@baomidou.com', NULL , '2019-01-11 14:20:20'), (1088248166370832385, '王天風', 25, 'wtf@baomidou.com', 1087982257332887553 , '2019-02-05 11:12:22'), (1088250446457389058, '李藝偉', 28, 'lyw@baomidou.com', 1088248166370832385 , '2019-02-14 08:31:16'), (1094590409767661570, '張雨琪', 31, 'zjq@baomidou.com', 1088248166370832385 , '2019-01-14 09:15:15'), (1094592041087729666, '劉紅雨', 32, 'lhm@baomidou.com', 1088248166370832385 , '2019-01-14 09:48:16');
2.使用Spring Initializr 建立Springboot項目
a.選擇依賴:Lombok\SpringWeb\MySQLDriver
b. 在pom中引入 MyBatisPlus
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.2</version> </dependency>
3. 在application.yml中 配置數據庫連接
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/springboot-mybatis-imooc?useSSL=false&serverTimezone=GMT%2b8 password: 123456 username: root
MySql驅動類:8.0以後用com.mysql.cj.jdbc.Driver ,比原來多個cjjava
useSSL=false 本地測試,不用SSL安全驗證mysql
serverTimezone:設置服務器時區爲東八區 GMT+8spring
3.1 在mysql 中設置時區:
mysql> set global time_zone = '+8:00'; Query OK, 0 rows affected (0.00 sec) mysql> show variables like '%time_zone%' -> ; +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | | | time_zone | +08:00 | +------------------+--------+ 2 rows in set, 1 warning (0.00 sec)
4. 建立實體
package com.zhl.springbootmp.entity; import lombok.Data; import lombok.ToString; import java.time.LocalDateTime; @Data @ToString public class User { private long id; private String name; private Integer age; private String email; /*上級*/ private long managerId; private LocalDateTime createTime; }
5.建立dao層
package com.zhl.springbootmp.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.zhl.springbootmp.entity.User; import org.springframework.stereotype.Repository; public interface UserMapper extends BaseMapper<User> { }
繼承 BaseMapper<> .泛型指定實體類型sql
6.在啓動類指定MapperScan 到dao層
@SpringBootApplication @MapperScan("com.zhl.springbootmp.dao") public class SpringbootMpApplication { public static void main(String[] args) { SpringApplication.run(SpringbootMpApplication.class, args); } }
7.測試類
@SpringBootTest class SpringbootMpApplicationTests { @Test void contextLoads() { } @Resource private UserMapper userMapper; @Test void test01(){ List<User> users = userMapper.selectList(null); users.forEach(System.out::println); } }
8.測試結果
2020-09-13 18:17:36.080 INFO 2280 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. User(id=1087982257332887553, name=大boss, age=40, email=boss@baomidou.com, managerId=0, createTime=2019-01-11T14:20:20) User(id=1088248166370832385, name=王天風, age=25, email=wtf@baomidou.com, managerId=1087982257332887553, createTime=2019-02-05T11:12:22) User(id=1088250446457389058, name=李藝偉, age=28, email=lyw@baomidou.com, managerId=1088248166370832385, createTime=2019-02-14T08:31:16) User(id=1094590409767661570, name=張雨琪, age=31, email=zjq@baomidou.com, managerId=1088248166370832385, createTime=2019-01-14T09:15:15) User(id=1094592041087729666, name=劉紅雨, age=32, email=lhm@baomidou.com, managerId=1088248166370832385, createTime=2019-01-14T09:48:16)