Spring Boot 2.0 常见问题总结(二)
使用 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 常见问题总结(二)的更多相关文章
- Spring Boot 2.0 常见问题总结(一)
SpringBoot2.x 依赖环境和版本新特性说明 依赖版本 jdk8 以上, Springboot2.x 用 JDK8 , 因为底层是 Spring framework5 . jar 包方式运行 ...
- Spring Boot 2.0系列文章(五):Spring Boot 2.0 项目源码结构预览
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/ 项目结构 结构分析: Spring-boot-pr ...
- Spring Boot 2.0系列文章(七):SpringApplication 深入探索
关注我 转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/30/springboot_SpringApplication/ 前言 在 Spring B ...
- Spring Boot 2.0(二):Spring Boot 2.0尝鲜-动态 Banner
Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜. 配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发 ...
- 学习Spring Boot:(二十七)Spring Boot 2.0 中使用 Actuator
前言 主要是完成微服务的监控,完成监控治理.可以查看微服务间的数据处理和调用,当它们之间出现了异常,就可以快速定位到出现问题的地方. springboot - version: 2.0 正文 依赖 m ...
- spring boot 2.0(二)动态banner的支持
Spring Boot 2.0 提供了很多新特性,其中就有一个小彩蛋:动态 Banner,今天我们就先拿这个来尝尝鲜. 配置依赖 使用 Spring Boot 2.0 首先需要将项目依赖包替换为刚刚发 ...
- spring boot 2.0 源码分析(二)
在上一章学习了spring boot 2.0启动的大概流程以后,今天我们来深挖一下SpringApplication实例变量的run函数. 先把这段run函数的代码贴出来: /** * Run the ...
- Spring Boot 2.0 教程 | @ModelAttribute 注解
欢迎关注微信公众号: 小哈学Java 文章首发于个人网站: https://www.exception.site/springboot/spring-boot-model-attribute Spri ...
- Spring Boot 2.0 教程 | 配置 Undertow 容器
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 资深架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 文章首发于个人网站 https://ww ...
随机推荐
- bi包
闭包是函数式编程的概念 闭包的定义:由函数极其封闭的自由变量组成的集合体. 其实每一个函数都是一个闭包 特点:函数中嵌套函数. 在返回的时候不仅返回函数本身,而且返回内部函数的值,关键词‘释放’ 闭包 ...
- github gist 查看html
gist GitHub Gist 指南 https://blog.csdn.net/yz18931904/article/details/80482166 通过修改hosts解决gist.github ...
- GA来源分析
网页中广告素材分为:文字,图片和FLASH三种.针对这三种素材,2种有无参数的情况,新旧版GA收集到的结果为: 提醒:FLASH素材如果不加参数收集不到来源: 具体GA参数如下: 可参考:https: ...
- css3-手把手 transform 小时钟
学习css3ing,正在学习transfomr,突发奇想用此做个小时钟,开始吧: 准备前期工作,把时钟的表盘,时分秒针,实时时间标签 的大概样子做好,效果如图: html代码如下: <div c ...
- leetcode-165周赛-1278-分割回文串③
题目描述: 动态规划:O(N^3) class Solution: def palindromePartition(self, s: str, k: int) -> int: def cost( ...
- 【持久层】Druid简介
Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBoss DataSou ...
- Windows最值得安装的小众软件
用电脑这么久,也琢磨出自己的一些使用心得.今天和大家分享几个Windows效率工具.数量不多,但每个都是精品. ▌软件下载-卫星公众好「悦享软件」,在后台会话框中回复关键字:h108 1.Ditto ...
- BN和正则化一起使用的后果
就是因为 batch norm 过后, weight 影响没那么重了,所以 l2 weight decay 的效果就不明显了. 证明了L2正则化与归一化相结合时没有正则化效应.相反,正则化会影响权重的 ...
- VC连接SQLite3的方法(MFC封装类)
SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,支持跨平台,操作简单,能够使用很多语言直接创建数据库.官方网站:www.sqlite.org 在VC环境下编写连接SQLite的 ...
- nginx防止SQL注入规则
$request_uriThis variable is equal to the *original* request URI as received from the client includi ...