数据库基础知识理解

  • SQL组成: DML、DDL、DCL、TCL
  • SQL组成名词解释:
    • DML:数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,操作语句:
      • INSERT :将数据插入到表或视图
      • DELETE :从表或视图删除数据
      • SELECT :从表或视图中获取数据
      • UPDATE :更新表或视图中的数据
      • MERGE : 对数据进行合并操作(插入/更新/删除)
    • DDL:数据库模式定义语言DDL(Data Definition Language),是用于描述数据库中要存储的现实世界实体的语言。操作语句:
      • CREATE : 在数据库中创建新的数据对象
      • ALTER : 修改数据库中对象的数据结构
      • DROP : 删除数据库中的对象(可以删除数据表、索引、触发程序、条件约束以及数据表的权限等)
      • DISABLE/ENABLE TRIGGER : 修改触发器的状态
      • UPDATE STATISTIC : 更新表/视图统计信息
      • TRUNCATE TABLE : 清空表中数据
      • COMMENT : 给数据对象添加注释
      • RENAME : 更改数据对象名称
    • DCL:DCL数据库控制语言不同于程序设计语言。是用来设置或更改数据库用户或角色权限的语句,操作语句:
      • GRANT: 赋予用户某种控制权限
      • DENY
      • REVOKE:取消用户某种控制权限
      • … …
    • TCL:事务控制语言,管理事务,操作语句
      • COMMIT : 保存已完成事务动作结果
      • SAVEPOINT : 保存事务相关数据和状态用以可能的回滚操作
      • ROLLBACK : 恢复事务相关数据至上一次COMMIT操作之后
      • SET TRANSACTION : 设置事务选项

数据库脚本名词解释

DataSource文件配置

根据需求自定义配置,真实情况用不了这么多的配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
spring:
dao:
exceptiontranslation:
enabled: # 是否开启PersistenceExceptionTranslationPostProcessor,默认为true
datasource:
abandon-when-percentage-full: # 设定超时被废弃的连接占到多少比例时要被关闭或上报
allow-pool-suspension: #使用Hikari pool时,是否允许连接池暂停,默认为: false
alternate-username-allowed: #是否允许替代的用户名.
auto-commit: #指定updates是否自动提交
catalog: #指定默认的catalog
commit-on-return: #设置当连接被归还时,是否要提交所有还未完成的事务
connection-init-sql: #指定连接被创建,再被添加到连接池之前执行的sql.
connection-init-sqls: #使用DBCP connection pool时,指定初始化时要执行的sql
connection-properties:
[key]: #在使用DBCP connection pool时指定要配置的属性
connection-test-query: #指定校验连接合法性执行的sql语句
connection-timeout: #指定连接的超时时间,毫秒单位.
continue-on-error: #在初始化数据库时,遇到错误是否继续,默认false
data: #指定Data (DML)脚本
data-source-class-name: #指定数据源的全限定名.
data-source-jndi: #指定jndi的地址
data-source-properties:
[key]: #使用Hikari connection pool时,指定要设置的属性
db-properties: #使用Tomcat connection pool,指定要设置的属性
default-auto-commit: #是否自动提交.
default-catalog: #指定连接默认的catalog.
default-read-only: #是否设置默认连接只读.
default-transaction-isolation: #指定连接的事务的默认隔离级别.
driver-class-name: #指定driver的类名,默认从jdbc url中自动探测.
fair-queue: #是否采用FIFO返回连接.
health-check-properties:
[key]: #使用Hikari connection pool时,在心跳检查时传递的属性
idle-timeout: #指定连接多久没被使用时,被设置为空闲,默认为10ms
ignore-exception-on-pre-load: #当初始化连接池时,是否忽略异常.
init-sql: #当连接创建时,执行的sql
initial-size: #指定启动连接池时,初始建立的连接数量
initialization-fail-fast: #当创建连接池时,没法创建指定最小连接数量是否抛异常
initialize: #指定初始化数据源,是否用data.sql来初始化,默认: true
isolate-internal-queries: #指定内部查询是否要被隔离,默认为false
jdbc-interceptors: #使用Tomcat connection pool时,指定jdbc拦截器,分号分隔
jdbc-url: #指定JDBC URL.
jmx-enabled: #是否开启JMX,默认为: false
jndi-name: #指定jndi的名称.
leak-detection-threshold: #使用Hikari connection pool时,多少毫秒检测一次连接泄露.
log-abandoned: #使用DBCP connection pool,是否追踪废弃statement或连接,默认为: false
log-validation-errors: #当使用Tomcat connection pool是否打印校验错误.
login-timeout: #指定连接数据库的超时时间.
max-active: #指定连接池中最大的活跃连接数.
max-age: #指定连接池中连接的最大年龄
max-idle: #指定连接池最大的空闲连接数量.
max-lifetime: #指定连接池中连接的最大生存时间,毫秒单位.
max-open-prepared-statements: #指定最大的打开的prepared statements数量.
max-wait: #指定连接池等待连接返回的最大等待时间,毫秒单位.
maximum-pool-size: #指定连接池最大的连接数,包括使用中的和空闲的连接.
min-evictable-idle-time-millis: #指定一个空闲连接最少空闲多久后可被清除.
min-idle: #指定必须保持连接的最小值(For DBCP and Tomcat connection pools)
minimum-idle: #指定连接维护的最小空闲连接数,当使用HikariCP时指定.
name: #指定数据源名.
num-tests-per-eviction-run: #指定运行每个idle object evictor线程时的对象数量
password: #指定数据库密码.
platform: #指定schema要使用的Platform(schema-${platform}.sql),默认为: all
pool-name: #指定连接池名字.
pool-prepared-statements: #指定是否池化statements.
propagate-interrupt-state: #在等待连接时,如果线程被中断,是否传播中断状态.
read-only: #当使用Hikari connection pool时,是否标记数据源只读
register-mbeans: #指定Hikari connection pool是否注册JMX MBeans.
remove-abandoned: #指定当连接超过废弃超时时间时,是否立刻删除该连接.
remove-abandoned-timeout: #指定连接应该被废弃的时间.
rollback-on-return: #在归还连接时,是否回滚等待中的事务.
schema: #指定Schema (DDL)脚本.
separator: #指定初始化脚本的语句分隔符,默认: ;
sql-script-encoding: #指定SQL scripts编码.
suspect-timeout: #指定打印废弃连接前的超时时间.
test-on-borrow: #当从连接池借用连接时,是否测试该连接.
test-on-connect: #创建时,是否测试连接
test-on-return: #在连接归还到连接池时是否测试该连接.
test-while-idle: #当连接空闲时,是否执行连接测试.
time-between-eviction-runs-millis: #指定空闲连接检查、废弃连接清理、空闲连接池大小调整之间的操作时间间隔
transaction-isolation: #指定事务隔离级别,使用Hikari connection pool时指定
url: #指定JDBC URL.
use-disposable-connection-facade: #是否对连接进行包装,防止连接关闭之后被使用.
use-equals: #比较方法名时是否使用String.equals()替换==.
use-lock: #是否对连接操作加锁
username: #指定数据库名.
validation-interval: #指定多少ms执行一次连接校验.
validation-query: #指定获取连接时连接校验的sql查询语句.
validation-query-timeout: #指定连接校验查询的超时时间.
validation-timeout: #设定连接校验的超时时间,当使用Hikari connection pool时指定
validator-class-name: #用来测试查询的validator全限定名.
xa:
data-source-class-name: #指定数据源的全限定名.
properties: #指定传递给XA data source的属性

JPA文件配置

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。

1
2
3
4
5
6
7
8
9
10
11
12
spring:
jpa:
database: #指定目标数据库.
database-platform: #指定目标数据库的类型.
generate-ddl: #是否在启动时初始化schema,默认为false
hibernate:
ddl-auto: #指定DDL mode (none, validate, update, create, create-drop). 当使用内嵌数据库时,默认是create-drop,否则为none.
hibernate:
naming-strategy: #指定命名策略.
open-in-view: #是否注册OpenEntityManagerInViewInterceptor,绑定JPA EntityManager到请求线程中,默认为: true
properties: #添加额外的属性到JPA provider.
show-sql: #是否开启sql的log,默认为: false

JTA文件配置

JTA,即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
spring:
jta:
allow-multiple-lrc: #是否允许 multiple LRC,默认为: false
asynchronous2-pc: #指定两阶段提交是否可以异步,默认为: false
background-recovery-interval: #指定多少分钟跑一次recovery process,默认为: 1
background-recovery-interval-seconds: #指定多久跑一次recovery process,默认: 60
current-node-only-recovery: #是否过滤掉其他非本JVM的recovery,默认为: true
debug-zero-resource-transaction: #是否追踪没有使用指定资源的事务,默认为: false
default-transaction-timeout: #设定默认的事务超时时间,默认为60
disable-jmx: #是否禁用jmx,默认为false
enabled: #是否开启JTA support,默认为: true
exception-analyzer: #设置指定的异常分析类
filter-log-status: #使用Bitronix Transaction Manager时,是否写mandatory logs,开启的话,可以节省磁盘空间,但是调试会复杂写,默认为false
force-batching-enabled: #使用Bitronix Transaction Manager时,是否批量写磁盘,默认为true.
forced-write-enabled: #使用Bitronix Transaction Manager时,是否强制写日志到磁盘,默认为true
graceful-shutdown-interval: #当使用Bitronix Transaction Manager,指定shutdown时等待事务结束的时间,超过则中断,默认为60
jndi-transaction-synchronization-registry-name: #当使用Bitronix Transaction Manager时,在JNDI下得事务同步registry,默认为: java:comp/TransactionSynchronizationRegistry
jndi-user-transaction-name: #指定在JNDI使用Bitronix Transaction Manager的名称,默认:java:comp/UserTransaction
journal: #当使用Bitronix Transaction Manager,指定The journal是否disk还是null还是一个类的全限定名,默认disk
log-dir: #ransaction logs directory.
log-part1-filename: #指定The journal fragment文件1的名字,默认: btm1.tlog
log-part2-filename: #指定The journal fragment文件2的名字,默认: btm2.tlog
max-log-size-in-mb: #指定journal fragments大小的最大值. 默认: 2M
resource-configuration-filename: #指定Bitronix Transaction Manager配置文件名.
server-id: #指定Bitronix Transaction Manager实例的id.
skip-corrupted-logs: #是否忽略corrupted log files文件,默认为false.
transaction-manager-id: #指定Transaction manager的唯一标识.
warn-about-zero-resource-transaction: #当使用Bitronix Transaction Manager时,是否对没有使用指定资源的事务进行警告,默认为: true






参考文章:

来自思否:@codecraft>SpringBoot配置属性之DataSource

最后更新: 2019年10月12日 20:21

原始链接: https://maiyikai.github.io/2019/01/29/1548731189/

× ~谢谢大爷~
打赏二维码