Java 具有动态数据源的动态数据源路由

Java 具有动态数据源的动态数据源路由,java,spring,hibernate,Java,Spring,Hibernate,我找到了一种实现此处描述的动态数据源路由的方法: () 这也可以通过使用hibernate多租户来实现 () 我的问题是,如何指定、动态创建数据源?对于wildfly,请使用wildfly cli 对于wildfly,请使用wildfly cli 几年前我也遇到过类似的情况。你可以参考详细的解释和工作几年前我也遇到过类似的情况。您可以参考详细的说明和工作说明 public static void createDataSource(String server, Integer port, St

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

()

这也可以通过使用hibernate多租户来实现

()


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

对于wildfly,请使用wildfly cli


对于wildfly,请使用wildfly cli


几年前我也遇到过类似的情况。你可以参考详细的解释和工作

几年前我也遇到过类似的情况。您可以参考详细的说明和工作说明

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();
    }
}