• 使用 IDEA 生成 POJO 实体类

    a. 使用 idea 连接上需要操作的数据库。

    b. 选中要生成实体类的数据库表:右键 ---> Scripted Extensions ---> Generate POJOs.groovy。

    c. 在弹出的窗口选择生成的位置即可。

  • application.properties 属性自动映射实体类配置

    a. 在 application.properties 文件中定义的属性如下

    wxpay.appid=wx5beac15ca207cdd40c
    wxpay.appsecret=5548012f33417fdsdsdd6f96b382fe548215e9

    b.使用 @PropertySource(value = "classpath:application.properties") 即可。

    @Getter
    @Setter
    @Configuration
    @PropertySource(value = "classpath:application.properties")
    public class WeChatConfig {
    @Value("${wxpay.appid}")
    private String appId; // 公众号 appid
    @Value("${wxpay.appsecret}")
    private String appsecret; // 公众号密钥
    } 执行以下测试代码,可以看到控制台输出的数据和配置文件一致
    @RestController
    @RequestMapping("/api")
    public class VideoController {
    @Autowired
    private WeChatConfig weChatConfig; @GetMapping
    public void getInfo(){
    System.out.println(
    weChatConfig.getAppId()+"==="+weChatConfig.getAppsecret()
    );
    }
    } 配置文件读取参考:https://blog.csdn.net/CC1014524900/article/details/97061465
  • SpringBoot 2.1.6.RELEASE 使用 Mybatis 访问数据库和数据源时候问题

    a.如果 MySQL 的版本 mysql-connector-java 用的 6.0 以上,DB 的连接信息配置如下:

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost:3306/xdclass?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8&useSSL=false
    spring.datasource.username=root
    spring.datasource.password=root com.mysql.jdbc.Driver 是 mysql-connector-java 5中的;
    com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的。
    而且使用 com.mysql.cj.jdbc.Driver 的时候需要指定时区。
    参考文章:https://blog.csdn.net/superdangbo/article/details/78732700

    b. 在 application.properties 数据源的配置

    如果不使用默认的数据(com.zaxxer.hikari.HikariDataSource),配置为 druid :
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

    c. MyBatis相关配置

    由于 DB 中配置的字段和实体类不对应(数据库有下划线,实体类是连接在一起),比如 DB 中配置 cover_Img,实体类中写为 coverImg。可以使用以下注解:
    # mybatis 下划线转驼峰配置,两者都可以(下面配置二选一即可)
    # mybatis.configuration.mapUnderscoreToCamelCase=true
    mybatis.configuration.map-underscore-to-camel-case=true

    d. 如何看到执行的 SQL 语句

    # 增加打印sql语句,用于本地开发测试(配合插件 Mybatis Log plugins)
    mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
    可以清晰看到执行的 SQL 语句。
  • PageHelper 分页插件的使用

    a.引入依赖
    <dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>4.1.0</version>
    </dependency>
    b.增加配置文件
    @Configuration
    public class MyBatisConfig {
    @Bean
    public PageHelper pageHelper() {
    PageHelper pageHelper = new PageHelper();
    Properties properties = new Properties();
    // 设置为 true 时,会将RowBounds第一个参数offset当成pageNum页码使用
    properties.setProperty("offsetAsPageNum", "true");
    //设置为 true 时,使用RowBounds分页会进行count查询
    properties.setProperty("rowBoundsWithCount", "true");
    properties.setProperty("reasonable", "true");
    pageHelper.setProperties(properties);
    return pageHelper;
    }
    }
    c. 分页查询代码
    @RestController
    @RequestMapping("/api")
    public class VideoController { @Autowired
    private VideoService videoService; /**
    * 分页查询
    *
    * @param page 当前第几页 默认:1
    * @param size 每次显示几条 默认:10
    * @return
    */
    @GetMapping("page")
    public Object pageVideo(
    @RequestParam(value = "page", defaultValue = "1") int page,
    @RequestParam(value = "size", defaultValue = "10") int size)
    { PageHelper.startPage(page, size);
    List<Video> videoList = videoService.findAll();
    PageInfo<Video> pageInfo = new PageInfo<>(videoList);
    Map<String,Object> data = new HashMap<>();
    data.put("total_size",pageInfo.getTotal()); //总条数
    data.put("total_page",pageInfo.getPages()); //总页数
    data.put("current_page",page); //当前页
    data.put("data",pageInfo.getList()); //数据
    return data;
    }
    }

Spring Boot 2.0 常见问题总结(二)的更多相关文章

  1. Spring Boot 2.0 常见问题总结(一)

    SpringBoot2.x 依赖环境和版本新特性说明 依赖版本 jdk8 以上, Springboot2.x 用 JDK8 , 因为底层是 Spring framework5 . jar 包方式运行 ...

  2. Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...

  3. Spring Boot 2.0系列文章(七):SpringApplication 深入探索

    关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/30/springboot_SpringApplication/ 前言 在 Spring B ...

  4. Spring Boot 2.0(二):Spring Boot 2.0尝鲜-动态 Banner

    Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜. 配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发 ...

  5. 学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator

    前言 主要是完成微服务的监控,完成监控治理.可以查看微服务间的数据处理和调用,当它们之间出现了异常,就可以快速定位到出现问题的地方. springboot - version: 2.0 正文 依赖 m ...

  6. spring boot 2.0(二)动态banner的支持

    Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜. 配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发 ...

  7. spring boot 2.0 源码分析(二)

    在上一章学习了spring boot 2.0启动的大概流程以后,今天我们来深挖一下SpringApplication实例变量的run函数. 先把这段run函数的代码贴出来: /** * Run the ...

  8. Spring Boot 2.0 教程 | @ModelAttribute 注解

    欢迎关注微信公众号: 小哈学Java 文章首发于个人网站: https://www.exception.site/springboot/spring-boot-model-attribute Spri ...

  9. Spring Boot 2.0 教程 | 配置 Undertow 容器

    欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 文章首发于个人网站 https://ww ...

随机推荐

  1. 如何通过命令行编写调试第一个C++程序(UNIX)

    1.文件保存以.cc,.cpp等结尾: 2.bash窗口调试命令:cc prog1.cc,编译器生成可执行问价,Unix系统中为a.out,windows中一般以filename.exe; 3.(1) ...

  2. 【串线篇】面向切面编程AOP

    面向切面编程AOP 描述:将某段代码“动态”的切入到“指定方法”的“指定位置”进行运行的一种编程方式 (其底层就是Java的动态代理)spring对其做了简化书写 场景: 1).AOP加日志保存到数据 ...

  3. TCP/IP的分层管理_01

    1.TCP/IP协议族里最重要的一点就是分层.TCP/IP协议族按层次分别分为以下4层:         应用层,传输层,网络层和数据链路层.           应用层:决定了向用户提供应用服务时通 ...

  4. 【HDOJ6581】Vacation(模拟)

    题意:有标号从0到n的n+1辆车,每辆车离终点的距离为s[i],车长为l[i],速度为v[i],规定不能超车,问何时所有车都能过终点线 n<=1e5,保证 思路: #include<bit ...

  5. 75 OpenCV编译、图像处理等

    0 引言 记录图像处理的一些经验和使用OpenCV 等库的注意事项. 1 opencv中的坐标系 一图以蔽之~ 2 opencv 3.4.0 + opencv_contrib + qt编译 主要参考了 ...

  6. Python文件操作生成csv及其他存储类型

    通常Pandas用习惯后,比较喜欢用.to_csv的操作直接来转成csv文件,但如果是对于列表,则可以使用文件操作生成写入csv文件: #打开文件fid0=open('baseline.csv','w ...

  7. win10在bios上还原系统

    遇到两次,win10系统,自动更新后,c盘好像被格式化了,桌面啥都没了,那个气啊.记录下怎么恢复的. 参考https://www.kafan.cn/edu/50206642.html,中的方法1. 通 ...

  8. VTemplate模板引擎的使用--进阶篇

    1.<vt:template>与<vt:include>标签的不同 <vt:template>和<vt:include> 标签都包含file属性,如果这 ...

  9. 查询事件状态,mysql查看事件是否开启,设置启动时自动开启方法

    1.查看事件是否开启 SHOW VARIABLES LIKE 'event_scheduler' 2.设置当前事件开启 SET GLOBAL event_scheduler = 1; 或 SET GL ...

  10. 【lua学习笔记】——在sublime中配置Lua运行环境

    一.让Sublime可以运行lua脚本 打开sublime 选择tools-->Build System-->New Build System   在新出现的文件中输入如下内容: { &q ...