springboot整合mybatis plus
springboot整合mybatis plus
一、导入依赖:
在pom.xml中导入连接数据库和mybatis plus相关依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--druid数据源(连接池)-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>
<!--mybatis plus ,导入的mybatis plus依赖,里面包含了mybatis依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
二、配置mybatis plus:
在application.yaml文件中配置:
spring:
# 数据库连接的基本信息
datasource:
url: jdbc:mysql://localhost:3306/test
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
# druid数据源配置
druid:
aop-patterns: com.springboot.mybatis.* #监控SpringBean
filters: stat,wall # 底层开启功能,stat(sql监控),wall(防火墙)
stat-view-servlet: # 配置监控页功能
enabled: true
login-username: admin # 监控页的登录用户
login-password: admin # 监控页的登录密码
resetEnable: false
web-stat-filter: # 监控web
enabled: true
urlPattern: /*
exclusions: '*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*'
filter:
stat: # 对上面filters里面的stat的详细配置
slow-sql-millis: 1000
logSlowSql: true
enabled: true
wall:
enabled: true
config:
drop-table-allow: false
# 配置mybatis规则
mybatis:
# config-location: classpath:mybatis/mybatis-config.xml # 配置mybatis全局配置文件的路径
mapper-locations: classpath:mybatis/mapper/*.xml # 配置mapper.xml文件的位置
configuration:
map-underscore-to-camel-case: true # 开启驼峰命名法
三、使用mybatis plus的功能:
类似于springMVC,springboot中web开发也分为4层,如下:
| 层(包) | 备注 |
|---|---|
| bean | 数据库表对应的bean类型 |
| mapper | 操作数据库 |
| service | 接口:定义方法;实现类:实现方法 |
| controller | 定义请求函数 |
数据库中有这样的一个表:
user:
| 列名 | 类型 |
|---|---|
| id | int |
| name | varchar |
| sex | varcahr |
1. 创建一个bean类
import lombok.Data;
@Data // 自动生成get和set方法,注意不会在代码中显示出get和set方法,而是在代码打包时,自动为我们生成
public class User {
private Integer id;
private String name;
private String sex;
}
2. 创建一个mapper:用来操作数据库
// mapper接口,使用@Mapper标注,这样我们就可以在容器中拿到这个mapper
// mapper主要是用来操作数据库的
// 继承BaseMapper,就可以使用BaseMapper里面定义的方法
// 如果要是用mybatis plus时,需要继承BaseMapper<操作的数据库表对应bean类>
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserMapper extends BaseMapper<User> {
}
mybatis plus(BaseMapper)为我们提供的方法:
3. 创建一个service:interface,实现类
定义一个interface:
继承 IService<数据库表的类型bean>
public interface UserService extends IService<User> {
public User getDataById(Integer id); //定义一个方法
}
定义实现类:
实现UserService,继承ServiceImpl<对应的mapper, 数据库表的类型bean>
注意:使用@Service标注
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
//从容器中拿到userMapper
@Autowired
UserMapper userMapper;
@Override
public User getDataById(Integer id) {
//注意:在Mapper中并没有定义selectById方法
//selectById方法时mybatis plus给我们提供的方法
return userMapper.selectById(id);
}
}
4. 创建一个controller:使用操作数据库的方法
@RestController //标注是一个Controller类
public class MyController {
// 从容器中自动获取UserService(定义的interface)
@Autowired
UserService userService;
@GetMapping("/get_data")
public User getData(@RequestParam("id") Integer id){
return userService.getDataById(id);
}
}
5. 重启服务,在浏览器中访问:
6. 如果mybatis plus提供的方法无法满足需求,我们还可以在mapper中自定义方法:
@Mapper
public interface UserMapper extends BaseMapper<User> {
@Select("select * from user where name = #{name}")
public User getDataByName(String name);
}
写好方法后,在service层中使用方法和mybatis plus提供的方法一致
理解:mapper继承了BaseMapper,那么mapper就可以使用BaseMapper的方法和属性,同时我们还可以自定义方法
7. 由于导入了druid数据源的依赖,在application中也配置了,所以可以访问监控页:
访问:http://localhost:8080/druid
初次访问需要登录:账号密码在application中定义了
url监控:
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)