mybatis plus使用

 查询操作

package com.edu.bdilab.weshareiotservice.mapper;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.edu.bdilab.weshareiotservice.pojo.Device;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;


import java.util.HashMap;
import java.util.Map;

@SpringBootTest
class DeviceMapperTest {
    @Autowired
    private  DeviceMapper mapper;

    @Test
    void test(){
        //不加任何条件 全部查询
       mapper.selectList(null).forEach(System.out::println);
    }
    @Test
    void delete(){
        //mapper.deleteById(1);
    }
    @Test
    void select(){
        QueryWrapper wrapper=new QueryWrapper();
        Map map=new HashMap<>();
        map.put("deviceName","温湿度传感器");
        map.put("deviceIdentification",1);
        //多条件查询
        wrapper.allEq(map);
        //.lt小于 .gt大于 .ne不等于 .ge是大于等于  .like模糊查询 .likeLeft以什么为结尾的模糊查询 .likeRight以什么为开头的模糊查询
        //inSql   wrapper.inSql("id","select id from device where id > 2");
        //.orderByAsc("age")按照年龄升序来排序 .orderByDesc("age")按照年龄降序来排列
        //.having("id > 8");先选出年龄大于8的  然后再按照降序进行排列
        System.out.println(mapper.selectList(wrapper));


    }
    @Test
    void select1(){
        //穿的是一个集合  根据多个id去共同查询
     //   mapper.selectBatchIds(Arrays.asList(2,3,4)).forEach(System.out::println);
//        Map map=new HashMap<>();
//        map.put("id",7);
//        //Map只能做等值判断,逻辑判断需要使用Wrapper来处理
//       mapper.selectByMap(map).forEach(System.out::println);
        QueryWrapper wrapper=new QueryWrapper();
//        wrapper.gt("id",1);
//        System.out.println(mapper.selectCount(wrapper));//统计id大于1的数量
//        //将查询的结果集封装到Map中,返回的是key:value
//        mapper.selectMaps(wrapper).forEach(System.out::println);
//        //查询返回的是Device对象
//        mapper.selectList(wrapper).forEach(System.out::println);
/**
 * 分页查询
 */
//        Page page=new Page<>(1,2);//第一个是页数 第二个是每页记录数
//        Page  result=mapper.selectPage(page,null);;//分页查询——需要添加一个配置
//        System.out.println(result.getSize());
//        System.out.println(result.getTotal());
        /**
         * 分页查询用Map集合封装
         */
//        Page> page=new Page<>(1,2);
//        mapper.selectMapsPage(page,null).getRecords().forEach(System.out::println);;
        /**
         * 返回一个object集合,只会装一个id,其他值拿不到
         */
        mapper.selectObjs(null).forEach(System.out::println);
        /**
         * 单个集合的遍历
         */
        System.out.println(mapper.selectOne(wrapper));
    }

}

 分页查询的配置类

package com.edu.bdilab.weshareiotservice.config;

import com.baomidou.mybatisplus.extension.plugins.OptimisticLockerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyBatisPlusConfig {
    @Bean
    public OptimisticLockerInterceptor optimisticLockerInterceptor(){
        return new  OptimisticLockerInterceptor();
    }
    @Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }
}

  如果这个东西直接反给视图我们用VO(view object) 如果是从数据库来到业务层 我们叫DTO
(DATA TO OBJECT)

 

new File("test.file").createNewFile(); 保存到哪里去了?开发中,会经常遇到这个问题。生成的文件,默认保存到user.dir路径下了。

解释

user.dir是jvm的系统属性,我们知道System.property可以获取jvm系统属性值,所以System.property("user.dir")路径就是文件的默认保存路径。

user.dir与user.home

user.dir:用户的当前工作目录,在linux下与pwd(print working directory) 命令相同

user.home:用户的主目录
 

mybatis plus将数据库字段自动对应生成类,mapper,controller,service,... 

package com.edu.bdilab.weshareiotservice;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.config.DataSourceConfig;
import com.baomidou.mybatisplus.generator.config.GlobalConfig;
import com.baomidou.mybatisplus.generator.config.PackageConfig;
import com.baomidou.mybatisplus.generator.config.StrategyConfig;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;


public class Main {
    public static void main(String[] args) {
        //创建gennerator对象
       AutoGenerator autoGenerator = new AutoGenerator();
       //数据源
         DataSourceConfig dataSourceConfig = new DataSourceConfig();
         dataSourceConfig.setDbType(DbType.MYSQL);//设置数据库类型
        dataSourceConfig.setUrl("jdbc:mysql://47.103.29.15:3306/weshare_IOT?serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf-8&useSSL=true");
        dataSourceConfig.setDriverName("com.mysql.cj.jdbc.Driver");//驱动
        dataSourceConfig.setUsername("root");
        dataSourceConfig.setPassword("123456");
        //将数据源装到gennerator里面
        autoGenerator.setDataSource(dataSourceConfig);
        //全局配置
        GlobalConfig globalConfig = new GlobalConfig();
        globalConfig.setOutputDir(System.getProperty("user.dir")+"/src/main/java");     //从工程绝对路径去找
        globalConfig.setOpen(false);////创建完后是否打开文件夹,还有.setAuthor("***")设置作者
        globalConfig.setServiceName("%sService");//用代码生成器生成的都会带一个首字母标识 此处是去除标识
        autoGenerator.setGlobalConfig(globalConfig);
        //包信息--指定生成的类所对应的包信息
         PackageConfig packageConfig = new PackageConfig();
         packageConfig.setParent("com.edu.bdilab.weshareiotservice");//设置副包
         packageConfig.setModuleName("gennerator");//指设置一个包 然后在包里写入mapper controller之类的
        packageConfig.setController("controller");
        packageConfig.setMapper("mapper");
       packageConfig.setService("service");
        packageConfig.setServiceImpl("serviceImpl");
        packageConfig.setEntity("entity");
        autoGenerator.setPackageInfo(packageConfig);
        //配置策略
        StrategyConfig strategyConfig = new StrategyConfig();
        strategyConfig.setInclude("connect_conf");//生成单个数据表,如果不加的话 会将数据库表都生成
        strategyConfig.setEntityLombokModel(true);//设置是否加lombok注解
        strategyConfig.setNaming(NamingStrategy.underline_to_camel);//数据库字段下划线转驼峰
        strategyConfig.setColumnNaming(NamingStrategy.underline_to_camel);
        autoGenerator.setStrategy(strategyConfig);
        autoGenerator.execute();//去执行


    }
}

        
            com.baomidou
            mybatis-plus-boot-starter
            3.3.1.tmp
        

        
            com.baomidou
            mybatis-plus-generator
            3.3.1.tmp
        
        
            org.apache.velocity
            velocity
            1.7
        

  mybatis plus使用_第1张图片

为改正上述的问题 采用在实体类字段上面加注解

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime miunte;//分钟

 

 mybatis plus使用_第2张图片

为解决上述问题:

 

 

mybatis plus使用_第3张图片

你可能感兴趣的:(java)