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 操作,在开发中给我带来很多的方便。
有空继续更新。
只要学不死,就往死里学 ——呆马鸽子