已关闭。此问题需要details or clarity。目前不接受回答。
**要改进此问题吗?**通过editing this post添加详细信息并阐明问题。
12天前关闭
Improve this question的
这个问题完全取决于我之前的问题。链接到下面提到的那个问题。(Spring Boot 中的接口投影)
我必须像下面这样将数据库列Map到getter:
interface UserAccess {
Optional<Long> getUserId();
Optional<String> getUserName();
Optional<Long> getRoleId();
Optional<String> getRoleName();
Optional<Boolean> getUserRoleReadOnly();
Optional<Long> getFormId();
Optional<String> getFormName();
Optional<String> getUrlPath();
Optional<Boolean> getFormAccessReadOnly();
Optional<Long> getFormTabId();
Optional<String> getFormTabName();
Optional<Boolean> getFormTabAccessReadOnly();
Optional<Long> getBranchId();
Optional<String> getBranchName();
Optional<Boolean> getBranchAccessReadOnly();
Optional<Long> getEntityId();
Optional<String> getEntityName();
Optional<Boolean> getEntityAccessReadOnly();
Optional<Long> getOrgId();
Optional<String> getOrgName();
}
字符串
我可以手工完成。但是,实现这样的getter需要大量的劳动。我被告知这可以通过代码生成来完成。我想知道如何通过SQL来完成。
我该怎么做?
1条答案
按热度按时间zujrkrfu1#
首先,代码:
Schema
字符串
以上仅为示例。
查询
型
小提琴
http://sqlfiddle.com/#!17/45c0a8/10
说明
information_schema.columns
是一个table
,它包含有关数据库columns
的信息public
模式中选择my_test
table
,当然,您可能有不同的表和不同的模式,请随意相应地替换它SELECT
子句中通过生成一个以data_type
和column_name
作为输入的字符串并连接这些部分来生成代码replace(initcap(replace(column_name, '_', ' ')), ' ', '')
将蛇形大小写的名称(如user_name
)转换为 Camel 大小写的名称(如UserName
),因此,当您的查询将其连接到“get”时,您将得到类似getUserName()
的结果结果
它应该看起来像这样:
x1c 0d1x的数据
我们已经成功地编写了为我们编写代码的代码,如果有成千上万的列需要实现getter,这将特别有用。