Spring Data JPA-属性详解


在 spring 的 jdbc 代码模块中,jdbc 的配置包括两个:

  • JdbcProperties: prefix 为 spring.jdbc.*

  • DataSourceProperties: prefix 为 spring.datasource.*

JdbcProperties

下面是 JdbcProperties,对于这几个配置,着实看起来有点陌生

@ConfigurationProperties(prefix = “spring.jdbc”)

public class JdbcProperties {

private final Template template = new Template();

public static class Template {

private int fetchSize = -1;

private int maxRows = -1;

@DurationUnit(ChronoUnit.SECONDS)

private Duration queryTimeout;

JdbcProperties 配置通过代码分析来看,目前只有在 JdbcTemplate 中使用了;也就是说,如果你的项目中没有使用 JdbcTemplate 的话,那 spring.jdbc.template.* 是无用的。抛个问题:如果使用 JdbcTemplate, 并且将 queryTimeout 配置成 -1 是不是一定会超时?为 0 呢?答案肯定是

jdbc 的这几个参数从代码看,最终都是为底层 Statement 服务的,这里不具体介绍执行过程及原理;这里放一个之前看到的一篇查询超时问题的排查,以供各位理解

  • fetchSize: 从数据库和结果集查询时,每次拉取指定 fetchSize 大小的数据,循环去取,直到取完。

  • maxRows:底层 Statement 对象生成的所有 ResultSet 对象可以包含的最大行数限制,最大以后的数据会被丢掉;这个参数设置应该是为了避免在结果集非常大的时候导致内存扛不住。

DataSourceProperties

这个比较容易理解,就是数据源配置,常见的 url, driverClassName 都是在这里配置的。

@ConfigurationProperties(prefix = “spring.datasource”)

public class DataSourceProperties implements BeanClassLoaderAware, InitializingBean {

private ClassLoader classLoader;

// datasource 名字,如果使用 embedded database,默认名是 “testdb”

private String name;

// 是否要随机创建一个 datasource name

private boolean generateUniqueName = true;

// 具体 connection pool 实现类的全限定名

private Class<? extends DataSource> type;

// 具体 JDBC driver 实现类的全限定名

private String driverClassName;

/**

  • JDBC URL of the database.

*/

private String url;

/**

  • Login username of the database.

*/

private String username;

/**

  • Login password of the database.

*/

private String password;

/**

  • 数据源的JNDI位置,如果使用这个,url,username 这些就不需要了。(没用过)

*/

private String jndiName;

// 初始化模式,比如是否使用可用的 DDL and DML 脚本

private DataSourceInitializationMode initializationMode = DataSourceInitializationMode.EMBEDDED;

/**

  • 在DDL 或 DML脚本中使用的平台 (such as schema-${platform}.sql or

  • data-${platform}.sql).

*/

private String platform = “all”;

// Schema (DDL) 脚本的资源位置.
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

面试题文档来啦,内容很多,485页!

由于笔记的内容太多,没办法全部展示出来,下面只截取部分内容展示。

1111道Java工程师必问面试题

MyBatis 27题 + ZooKeeper 25题 + Dubbo 30题:

Elasticsearch 24 题 +Memcached + Redis 40题:

Spring 26 题+ 微服务 27题+ Linux 45题:

Java面试题合集:

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
(img-VGfYAakW-1712073055401)]

Java面试题合集:

[外链图片转存中…(img-pem6OTlE-1712073055401)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值