1.首先新建一個springboot 項目
2.配置pom.xml文件
//這是自動配置pojo類的包,這樣我們就不用再pojo 里面寫set ,get方法,和構造方法
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> //這是mybatis-plus的包 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.0.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
3.配置application.yml 文件
#這是配置服務的端口 server: port: 8082 #配置項目的數據源 spring: datasource: username: root password: 123456 #com.mysql.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver #高版本的mysql 會不寫后面的 serverTimezone 會啟動不了 url: jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 mybatis-plus: configuration: # 是否開啟自動駝峰命名規則(camel case)映射,即從經典數據庫列名 A_COLUMN(下划線命名) 到經典 Java 屬性名 aColumn(駝峰命名) 的類似映射 map-underscore-to-camel-case: false # 輸出日志文件 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl global-config: db-config: #設置刪除的標志,1為已刪除的,0為未刪除的 logic-delete-value: 1 logic-not-delete-value: 0
4.編寫pojo類(即實體類)這里以我創建的User為例子,同時數據庫里面也要建一張user表。(博主用的是mysql)
package com.xbin.pojo; import com.baomidou.mybatisplus.annotation.*; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; //生成get set 方法的注解 @Data //無參構造函數 @NoArgsConstructor //全參構造函數 @AllArgsConstructor public class User { //id 的生成方式 @TableId(type = IdType.ID_WORKER) private Long userId; private String userName; private String email; private Integer countryId; private Integer depId;private Date create_time;private Date update_time; private Integer version; private Integer deleted; }
5.編寫Dao類,博主這里用的是mapper這個名詞來代替Dao,本質是一樣的,只是命名方式不一樣而已
package com.xbin.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xbin.pojo.User; import org.springframework.stereotype.Repository; import org.springframework.web.bind.annotation.ResponseBody; //注入到spring 容器中 @Repository //在對應的類上去繼承BaseMapper public interface UserMapper extends BaseMapper<User> { //BaseMapper幫我們全部定制好了 //這里不再需要寫任何的crud代碼 }
6.還要記得在主啟動類加上掃描的注解(這個是坑,博主健忘,經常踩坑)
package com.xbin; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication //掃描mapper 包下面的所有mapper類 @MapperScan("com.xbin.mapper") public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
7.在測試類里面測試(下面是博主的一些測試,有些注釋掉的是后面一些知識點的測試)
package com.xbin; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xbin.mapper.UserMapper; import com.xbin.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import java.util.HashMap; import java.util.List; @SpringBootTest class DemoApplicationTests { //自動注入userMapper @Autowired UserMapper userMapper; @Test void contextLoads() {
//不需要寫sql語句,用userMapper.selectList就能查詢出來數據
List<User> users=userMapper.selectList(null); users.forEach(System.out::println); } // @Test // public void insertUser(){ // User user = new User(); // user.setUserName("大鵝"); // user.setEmail("66666@qq.com"); // user.setDepId(2); // // int resultId=userMapper.insert(user); // System.out.println("resultId:"+resultId); // System.out.println("新建好的用戶:"+user); // } // @Test // public void testOplock(){ // User user=userMapper.selectById(1); // user.setEmail("test@qq.com"); // // userMapper.updateById(user); // // } //@Test //public void testOplock(){ // User user=userMapper.selectById(1); // user.setEmail("test@qq.com"); // // User user2=userMapper.selectById(1); // user2.setEmail("nonono@qq.com"); // userMapper.updateById(user2); // // userMapper.updateById(user); // //} // @Test // public void testPage() { // Page<User> page = new Page<User>(1, 5); // userMapper.selectPage(page, null); // // System.out.println(page.getRecords().get(1)); // } @Test public void testDelete() { HashMap<String,Object> delMap=new HashMap<>(); delMap.put("userId",1); userMapper.deleteByMap(delMap); } }
OK, 這就是mybatis-plus 的基本使用,它可以簡化很多繁瑣的CRUD 操作,在開發中給我帶來很多的方便。
有空繼續更新。
只要學不死,就往死里學 ——呆馬鴿子