2013-04-09 5 views
0

Кто-нибудь знает, что лучший способ создать новое соединение базы данных оракула. Это то, что у меня есть сейчас:java - создание соединения базы данных оракула

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

Есть несколько способов подключения к базе данных в Java (независимо от базы данных). Проверьте документацию. –

+0

У вас есть многопоточная система? – anstarovoyt

ответ

4

Вы не обязаны регистрировать водителя самостоятельно; сам драйвер JDBC сделает это, когда будет загружен его класс. Поэтому не вызывайте DriverManager.registerDriver.

Существует два шага: убедитесь, что класс драйвера JDBC загружен, и получите соединение.

Чтобы загрузить класс драйвера JDBC, используйте следующую строку:

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

Затем получить соединение с вызовом к DriverManager.getConnection:

Connection conn = DriverManager.getConnection(connectionString); 

Обратите внимание, что если вы используете более новую JDBC версии и подходящего драйвера, вам даже не нужно явно загружать класс драйвера; он будет найден и загружен автоматически (через механизм обнаружения службы 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; 
    } 


} 
Смежные вопросы