0

有谁知道创建新的 oracle 数据库连接的最佳方法是什么。这是我目前拥有的:

private static getConnection() throws Exception {
    if (!isDriverRegistered){
               DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
               isDriverRegistered = true;
      }
      return DrvierManager.getConnection(connectionString);
    }
4

2 回答 2

4

您不应该自己注册驱动程序;JDBC 驱动程序本身会在加载其类时执行此操作。所以,不要给DriverManager.registerDriver自己打电话。

有两个步骤:确保 JDBC 驱动程序类已加载,并获得连接。

要加载 JDBC 驱动程序类,请使用如下行:

Class.forName("oracle.jdbc.OracleDriver");

然后通过以下方式获得连接DriverManager.getConnection

Connection conn = DriverManager.getConnection(connectionString);

请注意,如果您使用较新的 JDBC 版本和合适的驱动程序,您甚至不需要显式加载驱动程序类;它将被自动找到并加载(通过 Java 的服务发现机制)。在这种情况下,您只需调用DriverManager.getConnection.

于 2013-04-09T10:52:32.550 回答
0

这门课可能会对你有所帮助

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCHelper {

    public static void close(Statement obj)
    {
        try
        {
            if(obj!=null)
                obj.close();
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static void close(ResultSet obj)
    {
        try
        {
            if(obj!=null)
                obj.close();
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static void close(Connection obj)
    {
        try
        {
            if(obj!=null)
                obj.close();
        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static Connection getConnection()
    {
        Connection con = null;

        String url = "url"     //give url
        String pwd = "password";//give password
        String uid = "userId";//give userid



        try
        {       
            Class.forName("oracle.jdbc.OracleDriver");   //pass driver name
            con = DriverManager.getConnection(url,uid,pwd);
            con.setAutoCommit(false);

        }
        catch(Exception e)
        {
            if(con!=null)
                try {
                    con.rollback();
                } catch (SQLException e1) {
                    // TODO Auto-generated catch block
                    e1.printStackTrace();
                }

            e.printStackTrace();
        }
        return con;
    }


}
于 2013-04-09T10:54:24.553 回答