Java/Database SQL JDBC/OracleDataSource

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

Get connection from DataSource

   <source lang="java">

import javax.sql.*; import java.sql.*; import oracle.jdbc.driver.*; import oracle.jdbc.pool.*; public class DataSource {

 public static void main(String[] args){
   try{
     OracleDataSource ods = new OracleDataSource();
     ods.setUser("yourName");
     ods.setPassword("mypwd");
     ods.setDriverType("thin");
     ods.setDatabaseName("ORCL");
     ods.setServerName("localhost");
     ods.setPortNumber(1521);
     Connection conn = ods.getConnection();
   }catch(SQLException se){
     se.printStackTrace();
   }
 }

}

</source>
   
  
 
  



Jndi DataSource

   <source lang="java">

import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Hashtable; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; import oracle.jdbc.pool.OracleDataSource; public class JndiDataSource {

 static Connection conn = null;
 static Statement stmt = null;
 static ResultSet rs = null;
 static Context ctx = null;
 static DataSource ds = null;
 public static void main(String args[]) throws Exception {
   String sp = "com.sun.jndi.fscontext.RefFSContextFactory";
   String file = "file:/e:/JNDI";
   String dataSourceName = "jdbc/myDatabase";
   Hashtable env = new Hashtable();
   env.put(Context.INITIAL_CONTEXT_FACTORY, sp);
   env.put(Context.PROVIDER_URL, file);
   ctx = new InitialContext(env);
   bindDataSource(ctx, dataSourceName);
   DataSource ds = null;
   ds = (DataSource) ctx.lookup(dataSourceName);
   Connection conn = ds.getConnection();
   Statement stmt = conn.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT Name FROM Employees");
   while (rs.next())
     System.out.println(rs.getString("name"));
   ctx.close();
   rs.close();
   stmt.close();
   conn.close();
   ctx.close();
   conn.close();
 }
 public static void bindDataSource(Context ctx, String dsn) throws SQLException, NamingException {
   OracleDataSource ods = new OracleDataSource();
   ods.setUser("yourName");
   ods.setPassword("mypwd");
   ods.setDriverType("thin");
   ods.setDatabaseName("ORCL");
   ods.setServerName("localhost");
   ods.setPortNumber(1521);
   ctx.rebind(dsn, ods);
 }

}

</source>
   
  
 
  



Oracle Connection Pool DataSource

   <source lang="java">

import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import javax.sql.PooledConnection; import oracle.jdbc.pool.OracleConnectionPoolDataSource; public class ConnPool {

 public static void main(String[] args) throws Exception {
   OracleConnectionPoolDataSource ocpds = new OracleConnectionPoolDataSource();
   ocpds.setURL("jdbc:oracle:thin:@localhost:1521:ORCL");
   ocpds.setUser("user");
   ocpds.setPassword("password");
   PooledConnection pc_1 = ocpds.getPooledConnection();
   Connection conn_1 = pc_1.getConnection();
   Statement stmt = conn_1.createStatement();
   ResultSet rs = stmt.executeQuery("SELECT count(*) FROM v$session WHERE username = "SYS"");
   rs.next();
   String msg = "Total connections after ";
   System.out.println(msg + "conn_1: " + rs.getString(1));
   Connection conn_2 = pc_1.getConnection();
   stmt = conn_2.createStatement();
   rs = stmt.executeQuery("SELECT count(*) FROM v$session WHERE username = "SYS"");
   rs.next();
   System.out.println(msg + "conn_2: " + rs.getString(1));
   PooledConnection pc_2 = ocpds.getPooledConnection();
   rs = stmt.executeQuery("SELECT count(*) FROM v$session WHERE username = "SYS"");
   rs.next();
   System.out.println(msg + "pc_2: " + rs.getString(1));
   conn_1.close();
   conn_2.close();
   pc_1.close();
   pc_2.close();
 }

}

</source>