SpringBoot+Mybatis实现简单的增删改查
首先是在Springboot项目中整合Mybatis
先导入依赖
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
这里我用的是MP,因为只是实现一些比较简单的数据库操作,所以使用mp可以减少代码量
接着就是对于mybatis,sql的配置
模板引擎我使用的是springboot推荐的thymeleaf,配置如下:
spring:
thymeleaf:
enabled: true #开启thymeleaf视图解析
encoding: utf-8 #编码
prefix: classpath:/templates/ #前缀
cache: false #是否使用缓存
mode: HTML #严格的HTML语法模式
suffix: .html #后缀名
datasource:
name: test
url: jdbc:mysql://localhost:3306/dfrz_edusys?useUnicode=true&characterEncoding=utf8
username: root
password: 123456
# 使用druid数据源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
## 该配置节点为独立的节点,有很多同学容易将这个配置放在spring的节点下,导致配置无法被识别
mybatis:
mapper-locations: classpath:mapping/*.xml #注意:一定要对应mapper映射xml文件的所在路径
type-aliases-package: com.example.login.bean # 注意:对应实体类的路径
#pagehelper分页插件
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
params: count=countSql
#mybatis-plus
mybatis-plus:
mapper-locations: classpath:mapping/*.xml
configuration:
#开启MyBatis日志
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
cache-enabled: true
完成配置后就是对于mapper类的书写,先完成一个对于User信息的操作:
public interface UserMapper extends BaseMapper<User> {
//public User getUserById(Integer id);
}
只要继承 BaseMapper就能够调用封装好的增删改查功能。
服务层的编写
public interface IUserService {
public void addUser(User user);
public User login(User user);
public List<User> getUsers();
public void editUser(User user);
public void delUser(User user);
public User getUser(User user);
}
Impl对于接口的具体实现如下:
public class UserServiceImpl implements IUserService{
@Autowired
UserMapper userMapper;
@Override
public void addUser(User user) {
userMapper.insert(user);
}
@Override
public User login(User user) {
System.out.println(user.getUname()+" "+user.getUpass());
if ("wsk".equals(user.getUname()) && "wsk".equals(user.getUpass())){
return user;
}else {
return null;
}
}
@Override
public List<User> getUsers() {
List<User> list = userMapper.selectList(null);
return list;
}
@Override
public void editUser(User user) {
userMapper.updateById(user);
}
@Override
public void delUser(User user) {
userMapper.deleteById(user.getId());
}
@Override
public User getUser(User user) {
User user1 = userMapper.selectById(user.getId());
return user1;
}
}
接着编写单元测试用例:
首先是插入功能:
@Test
public void test03() {
//添加用户
User user = new User(null, "testman20200701", "0701");
userMapper.insert(user);
}
结果如下
接着是查询功能,根据id(主键)来查询,调用selectById()接口即可实现
@Test
public void test01() {
User user = userMapper.selectById(7);
System.out.println(user);
}
结果如下
删除功能代码如下:
@Test
public void test05(){
userMapper.deleteById(7);
}
结果如下:
更新代码如下:
@Test
public void test06(){
userMapper.updateById(new User(9,"qwe","qwe"));
}
结果如下
本篇仅对于mybatis-plus的简单增删改查接口进行单员测试,服务层代码还未用到(写完博客才发现,懒得删了),所以在下一篇博客会具体讲到结合前端页面,如何进行完整的增删改查。😃