Java/Database SQL JDBC/DataSource

Материал из Java эксперт
Перейти к: навигация, поиск

implements DataSource

   <source lang="java">

import java.io.PrintWriter; import java.sql.*; import javax.sql.*; public class OracleDataSource implements DataSource {

 static {
   new oracle.jdbc.driver.OracleDriver();
 }
 protected boolean usingThinDriver;
 protected String description = "Oracle Data Source";
 protected String serverName;
 protected int portNumber;
 protected String databaseName;
 public OracleDataSource(String host, int port, String sid) {
   setServerName(host);
   setPortNumber(port);
   setDatabaseName(sid);
   usingThinDriver = true;
 }
 public OracleDataSource(String sid) {
   setDatabaseName(sid);
   usingThinDriver = false;
 }
 public boolean isUsingThinDriver() {
   return usingThinDriver;
 }
 public void setUsingThinDriver(boolean thin) {
   usingThinDriver = thin;
 }
 public String getDescription() {
   return description;
 }
 public void setDescription(String desc) {
   description = desc;
 }
 public String getServerName() {
   return serverName;
 }
 public void setServerName(String name) {
   serverName = name;
 }
 public int getPortNumber() {
   return portNumber;
 }
 public void setPortNumber(int port) {
   portNumber = port;
 }
 public String getDatabaseName() {
   return databaseName;
 }
 public void setDatabaseName(String name) {
   databaseName = name;
 }
 public Connection getConnection() throws SQLException {
   return getConnection(null, null);
 }
 public Connection getConnection(String userid, String password) throws SQLException {
   String url = "jdbc:oracle:" + getSubname();
   return DriverManager.getConnection(url, userid, password);
 }
 protected String getSubname() {
   return (isUsingThinDriver() ? "thin:@" + getServerName() + ":" + getPortNumber() + ":"
       + getDatabaseName() : "oci8:@" + getDatabaseName());
 }
 public int getLoginTimeout() throws SQLException {
   return DriverManager.getLoginTimeout();
 }
 public PrintWriter getLogWriter() throws SQLException {
   return DriverManager.getLogWriter();
 }
 public void setLoginTimeout(int timeout) throws SQLException {
   DriverManager.setLoginTimeout(timeout);
 }
 public void setLogWriter(PrintWriter writer) throws SQLException {
   DriverManager.setLogWriter(writer);
 }

}

 </source>
   
  
 
  



Look up DataSource from InitialContext

   <source lang="java">
 

import java.sql.Connection; import javax.naming.InitialContext; import javax.sql.DataSource; public class Main {

 public static void main(String[] argv) throws Exception {
   InitialContext init = new InitialContext();
   DataSource source = (DataSource) init.lookup("dsn");
   Connection connection = source.getConnection();
   System.out.println("Connect to " + connection.getCatalog() + " a success!");
 }

}


 </source>