mybatis学习

简介

javaEE三层架构:表现层,业务层,持久层

mybatis是一个优秀的持久层框架,用来简化JDBC开发

比较受欢迎

image

框架就是一个半成品软件,一套可以重复利用的,通用的基础代码模型

image

JDBC缺点:硬编码,操作繁琐

mybatis简化方法

mybatisplus快速入门

mybatisplus是国人开发的

官网:https://baomidou.com/

特点:无入侵
强大的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
image
image

分页功能

image

/*拦截器*/
@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

效果:
image
有三条数据,查看第2页,每页可以放两条数据

posted @ 2022-11-23 00:11  yangstar  阅读(29)  评论(0编辑  收藏  举报