【问题标题】:Create a generic Class to accept 2 database Connections创建一个通用类来接受 2 个数据库连接
【发布时间】:2015-02-13 22:22:06
【问题描述】:

我想创建一个可以接受用户要求的2个数据库连接的类,主要是H2数据库和MSSQL。

谁能提供伪代码或示例代码。该怎么办?

我只需要传递连接参数。

public class H2databaseconnection
{
private static final String DB_FILE_NAME=...

Connection properties for H2..
//Pretty simple code for h2
}

Public class connectionMSSQL{

{
Connection code for MSSQL
//Pretty simple code for MSSQL
}

我已经能够使用这两个连接与数据库建立连接。

由于我正在处理 API,我不明白如何使用哪些参数对此类类进行特定调用,具体取决于拥有 H2 数据库或 MSSQL 数据库的人。

如果他有H2/MSSQL,他应该传递什么参数?

用主函数创建了一个类:

public connectivity {
    public static void main(String args[] _) {
        Connection con = new H2databaseconnection().getConnection();
        String query = "Select * from abc where ghj = 'a65e'";
        Statement stmt = con.createStatement();
        ResultSet rs = stmt.executeQuery(query);
        ResultSetMetaData rsmd = rs.getMetaData();
        int colCount = rsmd.getColumnCount();
        System.out.println(colCount);

        // stmt.close();
        // con.close();

        Connection con1 = new ConnectionMSSQL().getConnection();
        String query1 = "Select * from xyz where abc = '05e'";
        Statement stmt1 = con1.createStatement();
        ResultSet rs1 = stmt1.executeQuery(query1);
        ResultSetMetaData rsmd1 = rs1.getMetaData();
        int colCount1 = rsmd1.getColumnCount();
        System.out.println(colCount1);

    }
}

我可以连接。但是如何让用户为连接提供参数呢?

【问题讨论】:

  • 你可以写工厂来获取连接。
  • 代码请求与 StackOverflow 无关。展示您尝试过的方法并详细说明具体问题,并确保您有一个客观、可回答的问题。
  • @tnw 好的.. 将更新问题。!谢谢。
  • @AbhishekGarg 谢谢!如果您更新后问题不再太宽泛,我将投票重新提出问题:)
  • @tnw 我希望这个问题现在更开放..?

标签: java jdbc h2 spring-jdbc


【解决方案1】:

你的意思是像

import java.sql.Connection;

public class PairedDatabaseConnection {

    public PairedDatabaseConnection(
        final Connection primaryConnection, final Connection secondaryConnection) {
        // validation connections are not null
        this.primaryConnection = primaryConnection;
        this.secondaryConnection = secondaryConnection;
    }

    private final Connection primaryConnection;
    private final Connection secondaryConnection;
}

【讨论】:

  • 这实际上是类似于工厂方法的方法。 1)保持引用对象实例或实例化对象的方式(延迟加载)。 2)向工厂索取其中任何一个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多