快速開始參考:https://baomidou.com/pages/226c21/
測驗專案: mybatis_plus
資料庫:mybatis_plus
一、創建并初始化資料庫
1、創建資料庫:
mybatis_plus
2、創建 User 表
其表結構如下:
| id | name | age | |
|---|---|---|---|
| 1 | Jone | 18 | [email protected] |
| 2 | Jack | 20 | [email protected] |
| 3 | Tom | 28 | [email protected] |
| 4 | Sandy | 21 | [email protected] |
| 5 | Billie | 24 | [email protected] |
其對應的資料庫 Schema 腳本如下:
DROP TABLE IF EXISTS user;
CREATE TABLE user (
id BIGINT(20) NOT NULL COMMENT '主鍵ID',
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
age INT(11) NULL DEFAULT NULL COMMENT '年齡',
email VARCHAR(50) NULL DEFAULT NULL COMMENT '郵箱',
PRIMARY KEY (id)
);
其對應的資料庫 Data 腳本如下:
DELETE FROM user;
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, '[email protected]'),
(2, 'Jack', 20, '[email protected]'),
(3, 'Tom', 28, '[email protected]'),
(4, 'Sandy', 21, '[email protected]'),
(5, 'Billie', 24, '[email protected]');
二、初始化工程
使用 Spring Initializr 快速初始化一個 Spring Boot 工程
Group:com.atguigu
Artifact:mybatis-plus
版本:2.2.1.RELEASE
三、添加依賴
spring-boot-starter、spring-boot-starter-test
添加:mybatis-plus-boot-starter、MySQL、lombok、
在專案中使用Lombok可以減少很多重復代碼的書寫,比如說getter/setter/toString等方法的撰寫
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</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>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok用來簡化物體類-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
注意: 引入 MyBatis-Plus 之后請不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差異導致的問題,
四、配置
在 application.properties 組態檔中添加 MySQL 資料庫的相關配置:
mysql5
#mysql資料庫連接
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus
spring.datasource.username=root
spring.datasource.password=123456
mysql8以上(spring boot 2.1)
注意: driver和url的變化
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=123456
注意:
1、這里的 url 使用了 ?serverTimezone=GMT%2B8 后綴,因為Spring Boot 2.1 集成了 8.0版本的jdbc驅動,這個版本的 jdbc 驅動需要添加這個后綴,否則運行測驗用例報告如下錯誤:
java.sql.SQLException: The server time zone value '?D1ú±ê×?ê±??' is unrecognized or represents more
2、這里的 driver-class-name 使用了 com.mysql.cj.jdbc.Driver ,在 jdbc 8 中 建議使用這個驅動,之前的 com.mysql.jdbc.Driver 已經被廢棄,否則運行測驗用例的時候會有 WARN 資訊
五、撰寫代碼
1、主類
在 Spring Boot 啟動類中添加 @MapperScan 注解,掃描 Mapper 檔案夾
注意: 掃描的包名根據實際情況修改
@SpringBootApplication
@MapperScan("com.atguigu.mybatisplus.mapper")
public class MybatisPlusApplication {
......
}
2、物體
創建包 entity 撰寫物體類 User.java(此處使用了 Lombok 簡化代碼)
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
Lombok使用參考:
https://blog.csdn.net/motui/article/details/79012846
3、mapper
創建包 mapper 撰寫Mapper 介面: UserMapper.java
public interface UserMapper extends BaseMapper<User> {
}
六、開始使用
添加測驗類,進行功能測驗:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MybatisPlusApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
public void testSelectList() {
System.out.println(("----- selectAll method test ------"));
//UserMapper 中的 selectList() 方法的引數為 MP 內置的條件封裝器 Wrapper
//所以不填寫就是無任何條件
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
}
注意:
IDEA在 userMapper 處報錯,因為找不到注入的物件,因為類是動態創建的,但是程式可以正確的執行, 為了避免報錯,可以在 dao 層 的介面上添加 @Repository 注解
控制臺輸出:
User(id=1, name=Jone, age=18, [email protected])
User(id=2, name=Jack, age=20, [email protected])
User(id=3, name=Tom, age=28, [email protected])
User(id=4, name=Sandy, age=21, [email protected])
User(id=5, name=Billie, age=24, [email protected])
通過以上幾個簡單的步驟,我們就實作了 User 表的 CRUD 功能,甚至連 XML 檔案都不用撰寫!
七、配置日志
查看sql輸出日志
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/507117.html
標籤:Java
