什么是数据库方言?为什么要配置数据库方言?

好久没更新博客了,这段时间都在写P8文档,主要就是开发手册和指南之类的。上周刚刚写完,其中一个小伙伴看了这个文档,问了一个很有意思的问题,我觉得有必要拿出来说一下。他问什么是数据库方言?

什么是数据库方言?为什么要配置数据库方言?_第1张图片

说这个问题之前,简单介绍一下P8,P8是总行针对OpenFramework做了封装的一个框架,如果要基于这个P8进行项目开发,就需要遵循P8产品报文配置规范,交易流水的数据库留痕操作,组件外呼,应用组件约束等特点,ETC(联机交易)就是在该框架上进行开发的,因为参与了部分开发,所以领导让写了一个文档。

P8能干什么?
1)流水记录(报文交易流水和子交易流水)
2)提供CPS组装交易的开发
3)提供冲正(原报文冲正)处理流程
4)提供针对报文2.0规范的配置文件
5)外呼交易接口(普通联机外呼,带文件联机外呼,带压缩文件联机外呼,普通主动外呼,带文件主动外呼,带主动文件联机外呼)
6)服务后处理(通过jms实现)

那么,什么是数据库方言?
数据库方言就是数据库厂商的Sql语言,我们之所以要引入数据库方言,就是为了使框架能适应不同的数据库厂商而提供的一种SQL转译模块。如何理解这句话?用过Hibernate框架的小伙伴肯定也记得需要配置数据库方言,目的就是告诉Hibernate要说哪个厂商的Sql语言。

什么是数据库方言?为什么要配置数据库方言?_第2张图片

引入数据库方言的目的是为了什么?
数据库方言主要用来实现对查询的优化,实现分页语句以及count语句的自动生成,方言会生成适合于该特定数据库的效率较高的SQL语法。

因为P8框架目前只框架提供了DB2、Informix、Oracle数据库方言支持,各具体的应用需要根据自己所使用的不同数据库,引用不同的方言,所以我们只需要在这个地方进行配置即可,比如:


	

数据库

类名

DB2

com.ccb.openframework.persist.dialect.DB2Dialect

Informix

com.ccb.openframework.persist.dialect.InformixDialect

Oracle

com.ccb.openframework.persist.dialect.OracleDialect

你可能感兴趣的:(Oracle)