2013-04-09 110 views
0

有谁知道最好的方法是创建一个新的oracle数据库连接。这是我目前有:java - 创建oracle数据库连接

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

有连接到数据库在Java中(不考虑数据库)的多种方式。请检查文档。 – 2013-04-09 10:47:56

+0

你有多线程系统吗? – anstarovoyt 2013-04-09 10:48:32

回答

4

你不应该自己注册驱动程序;当它的类被加载时,JDBC驱动程序本身会这样做。所以,请不要自己拨打DriverManager.registerDriver

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

要加载的JDBC驱动程序类,使用这样的一行:

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

然后得到一个呼叫DriverManager.getConnection连接:如果您使用的是较新的JDBC

Connection conn = DriverManager.getConnection(connectionString); 

注版本和合适的驱动程序,您甚至不需要明确加载驱动程序类;它会自动找到并加载(通过Java的服务发现机制)。在这种情况下,您只需拨打DriverManager.getConnection即可。

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


}