# 简要介绍
主要用来创建系统中用到的数据结构,包括数据库表结构和非数据库表,支持泛型模板,继承。
需要配置数据库连接,可以从数据库中导入数据表结构。
# 配置数据库连接
数据库连接的配置前置条件:
1)安装了 unixODBC,具体安装和配置参考安装教程的 UnixODBC 章节
2)在 bin/lib/kmyckj/prj_c/db_connect.ini 文件中设置数据库的连接
[kmyckj]
prj_c=user/password@db_tns
2
user:数据库连接的用户名称
password:数据库密码
db_tns:ODBC配置文件 /etc/odbc.ini 中,对应数据库连接节点的名称,如 myPostgreSQL
3)导入表结构的SQL语句,如:
bin/lib/kmyckj/prj_c/db_sql/get_table_struct_for_PostgreSQL.sql
注:kmyckj 和 prj_c 分别是主用户名 和 系统名
如果语句不正确,或不支持对应的数据库,可自行编写该SQL语句。
如果是 MySQL(get_table_struct_for_MySQL.sql),需要修改数据库名称
SELECT
TABLE_NAME AS tb_name,
COLUMN_NAME AS field_name,
DATA_TYPE AS field_type,
COLUMN_COMMENT AS field_comment,
CASE
WHEN COLUMN_KEY = 'PRI' THEN 1
ELSE 0
END AS is_key,
ROW_NUMBER() OVER (ORDER BY COLUMN_NAME) AS field_order_no
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_SCHEMA = '你的数据库名' -- 替换为你的数据库名
ORDER BY TABLE_NAME
2
3
4
5
6
7
8
9
10
11
12
13
14
15
如果是 Oracle(get_table_struct_for_Oracle.sql),需要修改数据库用户名
SELECT
COL.TABLE_NAME AS "tb_name",
COL.COLUMN_NAME AS "field_name",
COL.DATA_TYPE AS "field_type",
COM.COMMENTS AS "field_comment",
CASE WHEN PRI.COLUMN_NAME IS NOT NULL THEN 1 ELSE 0 END AS "is_key",
COL.COLUMN_ID AS "field_order_no"
FROM ALL_TAB_COLUMNS COL
LEFT JOIN ALL_COL_COMMENTS COM
ON COL.TABLE_NAME = COM.TABLE_NAME
AND COL.COLUMN_NAME = COM.COLUMN_NAME
AND COL.OWNER = COM.OWNER
LEFT JOIN (
SELECT
UTC.TABLE_NAME,
UTC.COLUMN_NAME,
UTC.OWNER
FROM ALL_CONSTRAINTS UC
JOIN ALL_CONS_COLUMNS UTC
ON UC.CONSTRAINT_NAME = UTC.CONSTRAINT_NAME
AND UC.OWNER = UTC.OWNER
WHERE UC.CONSTRAINT_TYPE = 'P'
) PRI
ON COL.TABLE_NAME = PRI.TABLE_NAME
AND COL.COLUMN_NAME = PRI.COLUMN_NAME
AND COL.OWNER = PRI.OWNER
WHERE
COL.OWNER = '你的用户名' -- 替换为你的用户名或者表所在的schema,注意大小写
ORDER BY
COL.TABLE_NAME,
COL.COLUMN_ID;
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
如果是 MySQL、Oracle、PostgreSQL、SQLServer 之外的数据库,需要在 get_table_struct_for_other.sql 中自行编写查询表结构的语句。
# 导入方式
导入支持直接从数据导入,也支持从Excel表格中导入。
Excel表格中导入说明:
1.文件第一个工作表为导入的数据;
2.表格的第一行为标题行,即字段名;
3.标题行的字段名称为:tb_name, field_name, field_type, field_comment, is_key, field_order_no;
4.具体内容参考SQL语句:get_table_struct_for_PostgreSQL.sql
# 生成类文件
C/C++:生成类文件,所有数据结构在同一个文件中 services_c/主用户账户/系统名称/model/tb_struct.hpp
Java:生成类文件在 services_c/主用户账户/系统名称/main/java//主用户账户/系统名称/model 目录下,每一个数据结构对应一个文件。