mybatis学习
简介
javaEE三层架构:表现层,业务层,持久层
mybatis是一个优秀的持久层框架,用来简化JDBC开发
比较受欢迎
框架就是一个半成品软件,一套可以重复利用的,通用的基础代码模型
JDBC缺点:硬编码,操作繁琐
mybatis简化方法
mybatisplus快速入门
mybatisplus是国人开发的
特点:无入侵
强大的crud
支持lambda
......
#配置jdbc参数
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC
username: root
password: m4a11234
package com.example.demo.entity;
import lombok.Data;
/*制作实体类与表结构(类名与表名对应,属性名与字段名对应)*/
@Data
public class User {
private Integer id ;
private String username ;
private String password ;
private String gender ;
private String addr ;
}
/*核心:定义数据接口,继承BaseMapper<User>*/
@Mapper
public interface UserDao extends BaseMapper<User> {
}
@SpringBootTest
class DemoApplicationTests {
/*注入dao接口,测试功能*/
@Autowired
private UserDao userDao;
@Test
void testGetAll() {
List<User> userList = userDao.selectList(null);
System.out.println(userList);
}
}
增删改查
/*查询所有用户*/
@Test
void testGetAll() {
List<User> userList = userDao.selectList(null);
System.out.println(userList);
}
/*测试新增操作*/
@Test
void testSave(){
//创建一个user对象
User user=new User();
//设置user的各个属性
user.setUsername("yangstar");
user.setPassword("m4a11234");
user.setAddr("云南大学");
user.setId(4);
user.setGender("男");
//执行insert
userDao.insert(user);
}
/*删除操作*/
@Test
void testDelet(){
userDao.deleteById(4);
}
/*更新操作*/
@Test
void testUpdata(){
User user=new User();
user.setId(1);
user.setUsername("张三");
userDao.updateById(user);
}
/*查找id是2的东西*/
//User(id=2, username=李四, password=234, gender=女, addr=天津)
@Test
void testGet(){
User user=new User();
user=userDao.selectById(2);
System.out.println(user);
}
lombok
分页功能
/*拦截器*/
@Configuration
public class MpConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor(){
//定义mp拦截器,大的
MybatisPlusInterceptor mybatisPlusInterceptor=new MybatisPlusInterceptor();
//添加具体的拦截器,小的
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return mybatisPlusInterceptor;
}
}
2.设置分页功能
在DemoApplicationTests下
/*分页功能*/
@Test
void testGetByPage(){
IPage page=new Page(2,2);
userDao.selectPage(page,null);
System.out.println("当前页码是:"+page.getCurrent());
System.out.println("每页显示数量:"+page.getSize());
System.out.println("一共有:"+page.getPages()+"页");
System.out.println("一共有:"+page.getTotal()+"条数据");
System.out.println("数据是:"+page.getRecords());
}
3.开启日志功能查看sql语句
在application.yml文件下
#开启 输出到日志台的配置
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
效果:
有三条数据,查看第2页,每页可以放两条数据