D盘

workspace
posts - 165, comments - 53, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

oracle的sys用户怎么通过jdbc连接[转]

Posted on 2009-02-20 17:10 巴西木 阅读(2255) 评论(0)  编辑 收藏 引用 所属分类: OracleJava

早看到这篇文章好多问题都不是问题了
http://jamesq.bokee.com/1263981.html

oracle的sys用户怎么通过jdbc连接

经过GOOGLE 总算知道了如何在JDBC中使用SYSDBA角色连接ORACLE数据库

在DriverManager.getConnection通过Properties 设置连接的defaultRowPrefetch,nternal_logon 等信息。


 

oracle的sys用户怎么通过jdbc连接

经过GOOGLE 总算知道了如何在JDBC中使用SYSDBA角色连接ORACLE数据库

在DriverManager.getConnection通过Properties 设置连接的defaultRowPrefetch,nternal_logon 等信息。



// -----------------------------------------------------------------------------
// ConnectionOptions.java
// -----------------------------------------------------------------------------

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


/**
* -----------------------------------------------------------------------------
* The following class provides an example of using jdbc to connect to an
* Oracle database using several advanced options. For example, one of the most
* used option is connecting to a database as SYSDBA. The following table
* contains 

* Connection Properties Recognized by Oracle jdbc Drivers 
* -------------------------------------------------------
* Name                Short Name Type     Description  
* ------------------- ---------- -------- -----------------------------------
* user                n/a        String   The user name for logging into the
*                                         database.
* password            n/a        String   The password for logging into the
*                                         database.
* database            server     String   The connect string for the database.
* internal_logon      n/a        String   A role, such as SYSDBA or SYSOPER,
*                                         that allows you to log on as SYS.
* defaultRowPrefetch  prefetch   String   (containing integer value)  
*                                         The default number of rows to
*                                         prefetch from the server.
*                                         (default value is "10")  
* remarksReporting    remarks    String   (containing boolean value)  
*                                         "true" if getTables() and 
*                                         getColumns() should report 
*                                         TABLE_REMARKS; equivalent to using 
*                                         setRemarksReporting().
*                                         (default value is "false")  
* defaultBatchValue   batchvalue String   (containing integer value)  
*                                         The default batch value that triggers
*                                         an execution request.
*                                         (default value is "10")  
* includeSynonyms     synonyms   String   (containing boolean value)
*                                         "true" to include column information 
*                                         from predefined "synonym" SQL 
*                                         entities when you execute a 
*                                         DataBaseMetaData getColumns() call; 
*                                         equivalent to connection 
*                                         setIncludeSynonyms() call.
*                                         (default value is "false")  
*  
* -----------------------------------------------------------------------------
*/


public class ConnectionOptions {

    
final static String driverClass    = "oracle.jdbc.driver.OracleDriver";
    
final static String connectionURL  = "jdbc:oracle:thin:@localhost:1521:TRUESRC";
    
final static String userID         = "scott";
    
final static String userPassword   = "tiger";
    Connection   con                   
= null;


    
/**
     * Construct a QueryExample object. This constructor will create an Oracle
     * database connection.
     
*/

    
public ConnectionOptions() {

        Properties conProps 
= new Properties();
        conProps.put(
"user", userID);
        conProps.put(
"password", userPassword);
        conProps.put(
"defaultRowPrefetch""15");
        conProps.put(
"internal_logon""sysdba");

        
try {

            System.out.print(
"  Loading jdbc Driver  -> " + driverClass + "n");
            Class.forName(driverClass).newInstance();

            System.out.print(
"  Connecting to        -> " + connectionURL + "n");
            
this.con = DriverManager.getConnection(connectionURL, conProps);
            System.out.print(
"  Connected as         -> " + userID + "n");

        }
 catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(
1);
        }
 catch (InstantiationException e) {
            e.printStackTrace();
            System.exit(
1);
        }
 catch (IllegalAccessException e) {
            e.printStackTrace();
            System.exit(
1);
        }
 catch (SQLException e) {
            e.printStackTrace();
            System.exit(
1);
        }


    }



    
/**
     * Method to check which database user we are logged in as
     
*/

    
public void performUserQuery() {

        Statement stmt      
= null;
        ResultSet rset      
= null;
        String queryString  
= "SELECT user, TO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SS') " +
                              
"FROM   dual";

        
try {

            System.out.print(
"  Creating Statementn");
            stmt 
= con.createStatement ();

            System.out.print(
"  Opening ResultsSetn");
            rset 
= stmt.executeQuery(queryString);

            rset.next();
            System.out.println(
"      Database User  -> " + rset.getString(1));
            System.out.println(
"      Date / Time    -> " + rset.getString(2));

            System.out.println();
            System.out.print(
"  Closing ResultSetn");
            rset.close();

            System.out.print(
"  Closing Statementn");
            stmt.close();

        }
 catch (SQLException e) {

            e.printStackTrace();

        }


    }




    
/**
     * Close down Oracle connection.
     
*/

    
public void closeConnection() {

        
try {
            System.out.print(
"  Closing Connectionn");
            con.close();
            
        }
 catch (SQLException e) {
        
            e.printStackTrace();
            
        }


    }



    
/**
     * Sole entry point to the class and application.
     * 
@param args Array of String arguments.
     
*/

    
public static void main(String[] args) {

        ConnectionOptions co 
= new ConnectionOptions();
        co.performUserQuery();
        co.closeConnection();

    }


}


只有注册用户登录后才能发表评论。