一、MyBatis-Plus入門開發及配置
1、MyBatis-Plus簡介
MyBatis-Plus(簡稱:MP)是一個MyBatis的增強工具,在MyBatis的基礎上只做增強不做改變,為簡化開發、提高效率而生。
MyBatis-Plus易於學習,官網提供了基於SpringBoot的中文文檔,社區活躍,版本迭代快速。
MyBatis-Plus官方文檔:baomidou.com/guide/,可作為日…
2、基於SpringBoot項目集成MyBatis-Plus
可以基於IDEA的Spring Initializr進行SpringBoot項目的創建,或者移步至Boot官網構建一個簡單的web starter項目:start.spring.io/
①導入MyBatis-Plus相關的依賴包、數據庫驅動、lombok插件包:
pom.xml文件配置
<dependencies>
<!--數據庫驅動-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--mybatis-plus:版本3.0.5-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.0.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
復制代碼
②配置數據庫驅動、日志級別
application.properties配置
#mysql5 驅動不同,默認驅動:com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus_0312?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
#mysql8 驅動不同:com.mysql.cj.jdbc.Driver、需要增加時區的配置:serverTimezone=GMT%2B8,mysql8的驅動向下兼容mysql5
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#配置日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
復制代碼
3、入門Hello World進行數據庫操作
基於官網示例來構建數據庫表單及POJO數據類:baomidou.com/guide/quick…
MybatisPlusApplication啟動類:
@SpringBootApplication
//配置Mapper接口類掃描
@MapperScan("com.fengye.mapper")
//配置Spring Bean注解掃描
@ComponentScan(basePackages = "com.fengye.mapper")
public class MybatisPlusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisPlusApplication.class, args);
}
}
復制代碼
UserMapper類:
@Repository //持久層注解,表示該類交給Springboot管理
public interface UserMapper extends BaseMapper<User> {
}
復制代碼
User類:
@Data
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}
復制代碼
基礎CRUD操作:
@SpringBootTest
class MybatisPlusApplicationTests {
@Autowired //需要配置SpringBoot包掃描,否則此處使用@Autowired會報警告
//@Resource
private UserMapper userMapper;
@Test
void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
@Test
void testInsert(){
System.out.println("----- insert method test ------");
User user = new User();
user.setName("楓夜愛學習");
user.setAge(20);
user.setEmail("241337663@qq.com");
int insertId = userMapper.insert(user);
System.out.println(insertId);
}
@Test
void testUpdate(){
System.out.println("----- update method test ------");
User user = new User();
user.setId(1370382950972436481L);
user.setName("苞米豆最愛");
user.setAge(4);
user.setEmail("baomidou@github.com");
int updateId = userMapper.updateById(user);
System.out.println(updateId);
System.out.println(user);
}
@Test
void testDelete(){
System.out.println("----- delete method test ------");
int deleteId = userMapper.deleteById(1370386235364118529L);
System.out.println(deleteId);
}
}
復制代碼
4、主鍵生成策略配置
主鍵生成策略:
使用@TableId(type = IdType.AUTO,value = "id") ,value屬性值當實體類字段名和數據庫一致時可以不寫,這里的value指的是數據庫字段名稱,type的類型有以下幾種:
public enum IdType {
AUTO(0), //Id自增操作
NONE(1), //未設置主鍵
INPUT(2), //手動輸入,需要自己setID值
ID_WORKER(3), //默認的全局唯一id
UUID(4), //全局唯一id uuid
ID_WORKER_STR(5); //ID_WORKER的字符串表示法
...
}
復制代碼
目前MyBatis-Plus官方文檔建議的id主鍵設置為:@TableId(type = IdType.INPUT)
