我有10个表的Oracle数据库.一些表具有CLOB数据文本.我需要使用java以编程方式从这些表中导出数据.导出数据应采用ANSI INSERT INTO SQL格式,例如:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
Run Code Online (Sandbox Code Playgroud)
主要思想是我需要将这些数据导入三个不同的数据库:
ORACLE,MSSQL和MySQL.据我所知,所有这些数据库都支持ANSI INSERT INTO.但我还没有找到任何用于生成数据SQL脚本的java API /框架.我不知道如何处理CLOB数据,如何导出它.
使用java从数据库导出数据的最佳方法是什么?
更新:(01.07.2018)
我想根据这个答案,不可能插入超过4000字节的文本数据.如何使用java以编程方式生成PL\SQL脚本?或者是否有任何其他导出格式支持ORACLE,MSSQL等?
主要问题是如何在不违反SOLID原则的情况下将DTO转换为实体以及将实体转换为Dto。
例如,我们有这样的json:
{ id: 1,
name: "user",
role: "manager"
}
Run Code Online (Sandbox Code Playgroud)
DTO是:
public class UserDto {
private Long id;
private String name;
private String roleName;
}
Run Code Online (Sandbox Code Playgroud)
实体是:
public class UserEntity {
private Long id;
private String name;
private Role role
}
public class RoleEntity {
private Long id;
private String roleName;
}
Run Code Online (Sandbox Code Playgroud)
并且有有用的Java 8 DTO转换模式。
但是在他们的示例中,没有一对多关系。为了创建UserEntity,我需要使用dao层(服务层)按RoleName获取Role。我可以将UserRepository(或UserService)注入对流器中吗?因为转换器组件似乎会破坏SRP,所以它只能转换,不能知道服务或存储库。
转换器示例:
@Component
public class UserConverter implements Converter<UserEntity, UserDto> {
@Autowired
private …Run Code Online (Sandbox Code Playgroud) 我有带有REST API的Web项目。我想在tomcat服务器上部署5个副本。例如:
test1.war => URL:http:// localhost:8080 / test1 / api
test2.war => URL:http:// localhost:8080 / test2 / api
test3.war => URL:http:// localhost:8080 / test3 / api
...
问题是每个war文件应使用不同的配置文件。我知道我可以使用export设置环境变量CATALINA_OPTs="Dparam1=/usr/config1.txt"。然后,我需要更改每个war文件中的源代码,以便为test1.war读取param1,为test2.war读取param2。但是每个war文件都应该相同(只有不同的名称)。理论上,完美的解决方案是这样的:
deploy test1.war -conf <path1>
deploy test2.war -conf <path2>
deploy test3.war -conf <path3>
Run Code Online (Sandbox Code Playgroud)
可以在雄猫中做到吗?还有其他选择吗?