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: debug
org.springframework: info
spring:
datasource:
url: jdbc:mysql://localhost:3306/db2
username: 1111
password: a118
driver-class-name: com.mysql.jdbc.Driver
mybatis:
type-aliases-package: com.example.springbootdemo1
configuration:
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 {
@Autowired
private userMapper userMapper1;
@Transactional
public user queryById(String id)
{
return userMapper1.selectByPrimaryKey(id);根据主键查询
}
}
第七步 测试
@Autowired
private userService userService;
@RequestMapping("/hello/{id}")
public user hello1 (@PathVariable String id)
{
return userService.queryById(id);
}
}