• SpringBoot_MyBatisPlus快速入门小例子


    快速入门

    创建一个表

    我这里随便创建了一个air空气表

    idea连接Mysql数据库

    点击右侧database再点击添加数据库

    找到Mysql

    添加用户名,密码,数据库最后点击测试

    测试成功后在右侧就能看到数据库了

    创建实体类

    右键数据库,找到scripted Extensions选择Generated POJOs. groovy 然后选择将实体类创建的位置,确定.

    生成的实体类会有get``set方法,这里我们用lombok注解进行操作

    @Data //自动生成`get`,`set`,`RequiredArgsConstructor`,`ToString`, `EqualsAndHashCode`方法
    @AllArgsConstructor//自动生成全参构造
    @NoArgsConstructor//自动生成无参构造生成的所有代码在class文件中查看
    public class Air {
    
      private long id;
      private long districtId;
      private java.sql.Date monitorTime;
      private long pm10;
      private long pm25;
      private String monitoringStation;
      private java.sql.Date lastModifyTime;
    
    }
    

    创建Mapper类

    相对与mybatis mybatisplus的代码量是不是减少了很多

    @Repository
    //在对应的Mapper上面继承基本的接口BaseMapper
    public interface AirMapper extends BaseMapper<Air> {
    //    所有的CRUD操作都已经编写完成
    //    不需要配置一大堆文件
    }
    

    Service层

    为了完整我加入了service层便于理解
    创建AirServiceAirSerivceImpl

    public interface AirService {
        List<Air> getAllAir();
    }
    
    @Service  //别落下Service注解,否则会显示Autowired注入失败错误
    public class AirServiceImpl implements AirService  {
        @Autowired  //自动装配
        private AirMapper airMapper;
        @Override
        public List<Air> getAllAir() {
            List<Air> airs = airMapper.selectList(null);//selectList方法就是之前AirMapper继承的BaseMapper里的方法,这里需要传一个Wrapper的参数,我先设置为null.其实这个Wrapper就是一个条件,
            return airs;
        }
    }
    

    测试类

    @SpringBootTest
    class MybatisApplicationTests {
        @Autowired
        private AirService service;
        @Test
        void contextLoads() {
            List<Air> allAir = service.getAllAir();
            for (Air a: allAir
                 ) {
                System.out.println(a.toString());
            }
        }
    } 
    

    成功

    我会写代码+代码改变世界=我会改变世界! 为什么要改变世界? 如果无法改变世界,那么,世界就会改变我......
  • 相关阅读:
    关于字符编码
    cocosbuilder中使用字体描边时,字符重叠,间距过小问题
    2dx关于js响应layer触摸消息的bug
    关于js-binding中Layer触摸事件的优化
    2dx解析cocosbuilder中使用layer时的缺陷
    关于 2dx v3.7 UIScale9Sprite的bug
    c++11 Chrono时间库
    cocos2d-x lua table数据存储
    cocos2d-x lua 使用ListView
    Oracle数据库impdp时ora-00439:未启用功能:Deferred Segment Creation
  • 原文地址:https://www.cnblogs.com/chougoushi/p/13434392.html
Copyright © 2020-2023  润新知