【问题标题】:Confgure Speedment without UI?在没有 UI 的情况下配置 Speedment?
【发布时间】:2023-03-08 17:20:01
【问题描述】:
我刚刚发现Speedment,一个基于 Java 8 Stream 的 OR/M 库,不得不说我喜欢它的想法。不再需要疯狂的配置或花时间筛选 900 页的 Hibernation 文档来找到注释我的类的正确方法:Speedment 只需读取您的数据库,为您生成 Java 类,并为您提供基于流的 API 来针对它们运行 DDL 语句。太酷了。
然而,一个重要的问题是,似乎您必须使用 Speedment UI 来配置您的数据库连接。此外,文档似乎没有指定如何执行以下操作:
- 指定您希望针对哪些表生成代码(也许数据库中有一些您不希望为其生成模型的表
- 执行存储过程
- 配置内存缓存
等等。在 GitHub 上,我似乎无法找到代码是如何从 UI 连接在一起以生成配置对象的。只是想知道是否有办法配置 Speedment sans UI(可能通过 JSON 或 YAML),如果有,有哪些配置可用。
【问题讨论】:
标签:
orm
java-8
java-stream
speedment
【解决方案1】:
可以在没有 UI 的情况下配置 Speedment,但需要进行一些修改。基本上,要从数据库生成代码,您需要手动创建一个 speedment.json-文件并指定要手动生成的架构。
- 创建一个新的 Maven 项目(一个
pom.xml-文件和一个src/main/java-目录)。
- 创建文件
/src/main/json/speedment.json
- 输入以下内容:
{
"config" : {
"name" : "yourproject",
"packageName" : "com.yourcompany",
"packageLocation" : "src/main/java/",
"dbmses" : [{
"name" : "db0",
"typeName" : "MySQL",
"ipAddress" : "127.0.0.1",
"port" : 3306,
"schemas" : [{
"name" : "your_db_schema"
}]
}]
}
}
运行 Maven 目标:mvn speedment:reload -Ddbms.username=root -Dbms.password=password(使用您的数据库的凭据)
最后,运行 Maven 目标:mvn speedment:generate
第一个目标连接到数据库并在 .json 文件中填写任何缺少的配置详细信息。第二个目标生成 .java 代码。
要禁用特定表,请将 json 属性“启用”设置为 false。您也可以通过这种方式禁用单个列。
如果需要,现在可以直接在 .json 文件中配置生成,然后重新生成。