Skip to content

关系型数据库(MySQL/PostgreSQL)

本文档说明 Zeze 如何通过 JDBC 接入 MySQL 与 PostgreSQL,覆盖两种数据组织模式(KV 模式 / 关系映射模式)、连接 URL 示例、Druid 连接池配置与依赖坐标,供需要 SQL 运维能力或跨表关系查询的场景参考。

实现接入方式KV 模式关系映射模式
DatabaseMySqlJDBC
DatabasePostgreSQLJDBC
DatabaseSqlServerJDBC❌(仅 KV,需自备 mssql 驱动)

key 与 value 均为 ByteBuffer 二进制,所有数据库通用。表结构为一张 (key 列, value 列) 的两列表。

维度说明
keyByteBuffer 二进制
valueByteBuffer 二进制
表结构(key, value) 两列
适用所有库通用,无需建索引、无需 SQL

2. 关系映射模式(RelationalMapping)

Section titled “2. 关系映射模式(RelationalMapping)”

Bean 字段映射为表列,支持按字段建索引与 SQL 查询。仅 MySQL / PostgreSQL 实现,需实现 DatabaseRelationalMapping 接口的 openRelationalTable(table)

维度说明
映射方式Bean 字段 → 表列
key / valueSQLStatement
索引支持按字段建索引
查询支持 SQL 查询
适用范围仅 MySQL / PostgreSQL

在 table 上启用:

<table name="demo_Module1_Account" RelationalMapping="true"/>

或在 bean 上启用,让生成的代码包含关系映射类:

<bean name="Account" MappingClass="true"/>
<DatabaseConf Name="default"
DatabaseType="MySql"
DatabaseUrl="jdbc:mysql://localhost:3306/zeze?user=root&amp;password=123456&amp;useSSL=false&amp;serverTimezone=UTC"/>
<DatabaseConf Name="default"
DatabaseType="PostgreSQL"
DatabaseUrl="jdbc:postgresql://localhost:5432/devtest?user=dev&amp;password=devtest12345"/>

JDBC 数据库支持 Druid 连接池。没有 <DruidConf> 子元素——Druid 的属性直接挂在 <DatabaseConf> 元素上:

<DatabaseConf Name="default"
DatabaseType="MySql"
DatabaseUrl="jdbc:mysql://..."
DriverClassName="com.mysql.cj.jdbc.Driver"
UserName="root"
Password="123456"
InitialSize="5"
MinIdle="5"
MaxActive="20"
MaxWait="60000"
MaxOpenPreparedStatements="20"
PhyMaxUseCount="10000"
PhyTimeoutMillis="600000"/>
属性说明
DriverClassNameJDBC 驱动类名
UserName数据库用户名
Password数据库密码
InitialSize初始连接数
MinIdle最小空闲连接
MaxActive最大活跃连接
MaxWait获取连接最大等待(毫秒)
MaxOpenPreparedStatements最大打开的 PreparedStatement 数
PhyMaxUseCount物理连接最大使用次数
PhyTimeoutMillis物理连接超时(毫秒)
依赖版本用途
com.mysql:mysql-connector-j8.4.0MySQL JDBC 驱动
org.postgresql:postgresql42.7.11PostgreSQL JDBC 驱动
com.alibaba:druid1.2.28Druid 连接池
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.4.0</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.7.11</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.28</version>
</dependency>
场景选择
需要 SQL 运维能力(手工查数、报表)关系映射模式
跨表关系查询关系映射模式
已有 MySQL 运维团队,要求工具链成熟MySQL
已有 PostgreSQL 运维团队PostgreSQL