cjdbc入门配置oracle

config\controller 新建文件testcontroller.xml

《具体关键的配置下面红色字体标出》

内容如下:


<?xml version="1.0" encoding="UTF8" ?>


<!DOCTYPE C-JDBC-CONTROLLER PUBLIC "-//ObjectWeb//DTD C-JDBC-CONTROLLER 2.0.2//EN"  "http://c-jdbc.objectweb.org/dtds/c-jdbc-controller-2.0.2.dtd">


<C-JDBC-CONTROLLER>

<!-- ipAddress为当前系统的ip port为jdbc监听的端口 两个必填-->

  <Controller port="25322" ipAddress="192.168.3.149" backlogSize="11">
    <Report hideSensitiveData="true" generateOnShutdown="true" generateOnFatal="true" enableFileLogging="true" />
    <JmxSettings>
 <HttpJmxAdaptor port="8088"/>
    </JmxSettings>

        <!-- configFile为下面新建虚拟数据库的文件名称 virtualDatabaseName 是jdbc连接中url的数据库名称-->
<VirtualDatabase configFile="oracle_test.xml" virtualDatabaseName="testDB" autoEnableBackends="true" checkpointName="Initial_test_oracle_recovery_log" />

  </Controller>
</C-JDBC-CONTROLLER>


config\virtualdatabase 新建oracle_test.xml

内容如下:


<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE C-JDBC PUBLIC "-//ObjectWeb//DTD C-JDBC 2.0.2//EN" "http://c-jdbc.objectweb.org/dtds/c-jdbc-2.0.2.dtd">


<C-JDBC>
    <!-- 这里的 name 必须和 控制文件的virtualDatabaseName 一致-->
  <VirtualDatabase name="testDB" maxNbOfConnections="0" poolThreads="true"  minNbOfThreads="0" maxNbOfThreads="0" maxThreadIdleTime="60" sqlDumpLength="60">


    <AuthenticationManager>

      <Admin>
      <User username="admin" password="admin"/>
      </Admin> 

     <!-- 这里的 VirtualUsers就是jdbc连接中的用户名和密码-->
      <VirtualUsers>
        <VirtualLogin vLogin="test" vPassword="test"/>
      </VirtualUsers>
    </AuthenticationManager>
<!-- DatabaseBackend 就是真实的数据库配置-->
    <DatabaseBackend name="db_153" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.3.121:1521:orcl11g" connectionTestStatement="select * from dual">

       <!-- 如果是oracle DatabaseSchema 是必须的 schemaName 必须是大写的用户名 小写的一定不行 -->
       <DatabaseSchema gatherSystemTables="false" schemaName="LIAOMIN" dynamicPrecision="table">
      </DatabaseSchema>

   <!--rLogin和rPassword表示真实的用户名和密码  vLogin 表示映射到上面VirtualUsers里面的vLogin-->
      <ConnectionManager vLogin="test" rLogin="liaomin" rPassword="liaomin">
      <RandomWaitPoolConnectionManager poolSize="40" timeout="30"/>
      </ConnectionManager>
    </DatabaseBackend>
<!--下面的同上面的配置 如果要集群 ConnectionManager 中的vLogin 都必须是一样的 表示相同的虚拟用户的操作会关联到这几个数据库中-->
     <DatabaseBackend name="db_121" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.3.153:1521:orcl" connectionTestStatement="select * from dual">
      <DatabaseSchema gatherSystemTables="false" schemaName="LIAOMIN" dynamicPrecision="table">
      </DatabaseSchema>
      <ConnectionManager vLogin="test" rLogin="liaomin" rPassword="liaomin">
      <RandomWaitPoolConnectionManager poolSize="40" timeout="30"/>
      </ConnectionManager>
    </DatabaseBackend>


<!--
<DatabaseBackend name="db_101" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@192.168.10.101:1521:tian" connectionTestStatement="select * from dual">
      <ConnectionManager vLogin="test" rLogin="liaomin" rPassword="liaomin">
      <RandomWaitPoolConnectionManager poolSize="40" timeout="30"/>
      </ConnectionManager>
    </DatabaseBackend>
-->
    <RequestManager>
      <RequestScheduler>
         <RAIDb-1Scheduler level="passThrough"/>
      </RequestScheduler>


      <RequestCache>
         <MetadataCache/>
         <ParsingCache/>
         <ResultCache granularity="table" />
      </RequestCache>


       <LoadBalancer>
         <RAIDb-1>
            <WaitForCompletion policy="all"/>
            <RAIDb-1-LeastPendingRequestsFirst/>
         </RAIDb-1>
      </LoadBalancer>
    </RequestManager>
  </VirtualDatabase>


</C-JDBC>



要确认数据库可以连接 否者会抛出

在cjdbc根目录新建批处理文件testrun.bat

内容如下 :

pushd %~dp0
set CJDBC_HOME=%CD%
set JAVA_HOME=E:\java\jdk6u30\jdk
%CD%/bin/controller.bat -f %CD%/config/controller/testcontroller.xml


将oracle连接的驱动 丢如 根目录/drivers下


运行testrun.bat

JAVA_HOME配置成jdk的路径


在java中连接字符的写法为


private static final  String url = "jdbc:cjdbc://localhost:25322/testDB";
private static final String userName = "test";
private static final String pwd = "test";


原文地址:https://www.cnblogs.com/liaomin416100569/p/9331374.html