使用jdbc创建一个连接到任何数据库的类

ram*_*mbo 2 java jdbc

我正在尝试设计一个Java swing应用程序.我想尝试并使用MVC类型的体系结构,我的UI与实际逻辑分离,以访问数据并连接到数据库.我已经决定创建一个自定义类,其中包含连接到数据库的所有逻辑,然后在我的action事件中为任何特定的表单和按钮调用此类中的方法.这样我可以切换数据库和我需要做的所有事情(如果我有一个包含许多表单的大型代码库)就是更改JDBC连接字符串以连接到oracle而不是MySQL.到目前为止,我有连接到数据库的代码,但我想弄清楚如何使这个类成为一个类.

try
     {
         Class.forName("com.mysql.jdbc.Driver");
         Connection con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/prototypeeop","root","triala");
         Statement stmt=con.createStatement();
         ResultSet rs=stmt.executeQuery(sql);
Run Code Online (Sandbox Code Playgroud)

然后,我将从连接类的成员函数返回结果集,以处理并显示在屏幕上.

kap*_*and 16

只需创建一个单独的类并委托他获取与数据库的连接:

public class ConnectionManager {
    private static String url = "jdbc:mysql://localhost:3306/prototypeeop";    
    private static String driverName = "com.mysql.jdbc.Driver";   
    private static String username = "root";   
    private static String password = "triala";
    private static Connection con;
    private static String urlstring;

    public static Connection getConnection() {
        try {
            Class.forName(driverName);
            try {
                con = DriverManager.getConnection(urlstring, username, password);
            } catch (SQLException ex) {
                // log an exception. fro example:
                System.out.println("Failed to create the database connection."); 
            }
        } catch (ClassNotFoundException ex) {
            // log an exception. for example:
            System.out.println("Driver not found."); 
        }
        return con;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在代码中获取如下连接:

private Connection con = null;
private Statement stmt = null;
private ResultSet rs = null;

con = ConnectionManager.getConnection();
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
Run Code Online (Sandbox Code Playgroud)