gpt4 book ai didi

java - 使用动态数据源进行动态数据源路由

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:53 26 4
gpt4 key购买 nike

我找到了一种实现此处描述的动态数据源路由的方法:

( https://spring.io/blog/2007/01/23/dynamic-datasource-routing/ );

这也可以使用 hibernate Multi-Tenancy 来实现

(https://docs.jboss.org/hibernate/orm/4.3/devguide/en-US/html/ch16.html)。

我的问题是,如何动态指定、创建数据源?

最佳答案

对于 Wildfly,请使用 wildfly-cli http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.wildfly.core%22%20AND%20a%3A%22wildfly-cli%22

public static void createDataSource(String server, Integer port, String database, String user, String pass) {
CommandContext ctx = null;
try {
StringBuilder cmd = new StringBuilder("data-source add");
cmd.append(" --name=").append(database);
cmd.append(" --driver-name=postgresql");
cmd.append(" --jndi-name=").append("java:jboss/datasources/"+database);
cmd.append(" --connection-url=").append("jdbc:postgresql://"+server+":"+port+"/"+database);
cmd.append(" --user-name=").append(user);
cmd.append(" --password=").append(pass);
cmd.append(" --enabled=true");

ctx = CommandContextFactory.getInstance().newCommandContext();
ctx.connectController();
ctx.handle(cmd.toString());
} catch(Exception e) {
throw new RuntimeException(e.getMessage());
} finally {
if(ctx != null)
ctx.terminateSession();
}
}

关于java - 使用动态数据源进行动态数据源路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41401556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com