springboot整合通用Mapper入门
概述
通用 Mapper 是一个用于简化 MyBatis 操作的开发框架。它通过提供通用的 CRUD(创建、读取、更新、删除)方法,减少了开发者需要编写的重复代码。通用 Mapper 的一个著名的实现是 MyBatis Generator(MyBatis 代码生成器)。
查看这个接口的源码 他继承了很多接口 这些接口就已经帮助我们实现了增删改查
@RegisterMapper
public interface Mapper<T> extends BaseMapper<T>, ExampleMapper<T>, RowBoundsMapper<T>, Marker {
}
@RegisterMapper
public interface BaseMapper<T> extends BaseSelectMapper<T>, BaseInsertMapper<T>, BaseUpdateMapper<T>, BaseDeleteMapper<T> {
}
@RegisterMapper 这是查 可以看到继承了很多
public interface BaseSelectMapper<T> extends SelectOneMapper<T>, SelectMapper<T>, SelectAllMapper<T>, SelectCountMapper<T>, SelectByPrimaryKeyMapper<T>, ExistsWithPrimaryKeyMapper<T> {
}
第一步导入依赖
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.18</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId><version>3.0.6</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.33</version></dependency><!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>3.0.2</version></dependency><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>2.1.5</version></dependency></dependencies>
第二步配置数据源和mybaits
server:port: 80
logging:level:com.example.springbootdemo1: debugorg.springframework: info
spring:datasource:url: jdbc:mysql://localhost:3306/db2username: 1111password: a118driver-class-name: com.mysql.jdbc.Driver
mybatis:type-aliases-package: com.example.springbootdemo1configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
第三步 编写一个实体类
@Data
@Table(name = "user")
//根据数据库表自动映射
public class user {@Id//主键回填 主键一般都是自增的 当自增的时候自动回填到id上面
// @KeySql(useGeneratedKeys = true)private String sno;@Column//如果符合驼峰规则 user_name --> userName 并且实体类变量和数据库变量一致可以不用这个注解private String name;private int point ;
}
第四步 编写mapper接口继承通用mapper
import tk.mybatis.mapper.common.Mapper;public interface userMapper extends Mapper<user> {
}
第五步 在springboot启动类那里加注解通用mapper扫描
@SpringBootApplication
@MapperScan("com.example.springbootdemo1.mapper")
public class Springbootdemo1Application {public static void main(String[] args) {SpringApplication.run(Springbootdemo1Application.class, args);}}
第六步 编写服务类
@Service
public class userService {@Autowiredprivate userMapper userMapper1;@Transactionalpublic user queryById(String id){return userMapper1.selectByPrimaryKey(id);根据主键查询}
}
第七步 测试
@Autowiredprivate userService userService;@RequestMapping("/hello/{id}")public user hello1 (@PathVariable String id){return userService.queryById(id);}
}