java application 应用程序 使用JDBC proxool 两种方式连接数据库 测试程序代码

来源:互联网 发布:qemu优化 编辑:程序博客网 时间:2024/04/29 09:37

新建java project,名称为ProxoolTest,在根目录下新建src文件夹,并在src文件夹下新建test类和proxool.xml文件

[java] view plaincopy
  1. //test.java文件  
  2.   
  3.   
  4. package src;  
  5. import java.sql.Connection;  
  6. import java.sql.DriverManager;  
  7. import java.sql.ResultSet;  
  8. import java.sql.SQLException;  
  9. import java.sql.Statement;  
  10. import org.logicalcobwebs.proxool.ProxoolException;  
  11. import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;  
  12.   
  13. public  class test {  
  14.     /** 
  15.      * @param proxool方式 
  16.      * @throws ProxoolException  
  17.      * @throws ClassNotFoundException  
  18.      */  
  19.     public static void main(String[] args) throws Exception {  
  20.                 Connection conn =null;  
  21.                 Statement stmt = null;  
  22.                 ResultSet rs = null;  
  23.            try {  
  24.                 System.out.println(test.class.getResource("/").toString());  
  25.                 System.out.println(test.class.getResource("/").getPath().toString());  
  26.                   
  27.                  //Java应用中先要加载配置文件,否则谁知道你配置给谁用的 以下两种方式都可以    
  28.                 //JAXPConfigurator.configure("D://TempWorkSpace//ProxoolTest//"+"src//proxool.xml", false);  //绝对路径方式   
  29.                   
  30.                 JAXPConfigurator.configure(test.class.getResource("/").toString().substring(6)+"src//proxool.xml"false); //相对路径方式  
  31.                   
  32.                 String testsql = "select * from tbarea ";   
  33.                 //1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动   
  34.                 Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");   
  35.                 //2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名   
  36.                 conn = DriverManager.getConnection("proxool.mysql");   
  37.                 //3:创建执行SQL的对象   
  38.                 stmt = conn.createStatement();   
  39.                 //4:执行SQL,并获取返回结果   
  40.                 rs = stmt.executeQuery(testsql);   
  41.                 //5:处理返回结果,此处打印查询结果   
  42.                 while (rs.next()) {  
  43.                     System.out.print(rs.getLong("areaid") + "/t");   
  44.                     System.out.print(rs.getString("areaname") + "/t");   
  45.                     System.out.println();   
  46.                 }   
  47.   
  48.            } catch (SQLException e) {  
  49.                e.printStackTrace();  
  50.            }finally{  
  51.                try {  
  52.                    if(rs!=null) rs.close();  
  53.                    if(stmt!=null) stmt.close();  
  54.                    //6:关闭数据库连接   
  55.                    conn.close();  
  56.             } catch (SQLException e) {  
  57.              e.printStackTrace();  
  58.             }  
  59.            }  
  60.     }  
  61.   
  62.     /**  
  63.       * JDBC方式测试  
  64.       *  
  65.       * @throws Exception  
  66.       */   
  67.     public static void test1() throws Exception {  
  68.         String dburl = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=TestDB";   
  69.         String user = "sa";   
  70.         String password = "sa";   
  71.           
  72.         String testsql = "select * from tbarea";   
  73.         //1:注册驱动类   
  74.         Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");   
  75.         //2:创建数据库连接   
  76.         Connection conn = DriverManager.getConnection(dburl, user, password);   
  77.         //3:创建执行SQL的对象   
  78.         Statement stmt = conn.createStatement();   
  79.         //4:执行SQL,并获取返回结果   
  80.         ResultSet rs = stmt.executeQuery(testsql);   
  81.         //5:处理返回结果,此处打印查询结果   
  82.         while (rs.next()) {   
  83.             System.out.print(rs.getLong("areaid") + "/t");   
  84.             System.out.print(rs.getString("areaname") + "/t");   
  85.             System.out.println();   
  86.         }   
  87.         //6:关闭数据库连接   
  88.         conn.close();   
  89.     }  
  90. }  

我的测试文档:

[xhtml] view plaincopy
  1. <!-- proxool.xml 文件 -->  
  2.   
  3. <?xml version="1.0" encoding="ISO-8859-1"?>  
  4. <!--</SPAN><SPAN style="COLOR: #008000" mce_style="COLOR: #008000"> the proxool configuration can be embedded within your own application's.<BR><IMG src="/Images/OutliningIndicators/None.gif" mce_src="Images/OutliningIndicators/None.gif" align=top>Anything outside the "proxool" tag is ignored. </SPAN><SPAN style="COLOR: #008000" mce_style="COLOR: #008000">-->  
  5. <something-else-entirely>  
  6.   <proxool>  
  7.     <alias>mysql</alias>  
  8.     <driver-url>jdbc:sqlserver://127.0.0.1:1433;DatabaseName=TestDB</driver-url>  
  9.     <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>   
  10.     <driver-properties>  
  11.       <property name="user" value="sa"/>  
  12.       <property name="password" value="sa"/>  
  13.     </driver-properties>  
  14.     <maximum-connection-count>100</maximum-connection-count>      
  15.     <house-keeping-sleep-time>30000</house-keeping-sleep-time>    
  16.     <prototype-count>15</prototype-count>    
  17.     <minimum-connection-count>5</minimum-connection-count>  
  18.     <!--prototype-count>4</prototype-count-->  
  19.     <maximum-active-time>100</maximum-active-time>  
  20.     <house-keeping-test-sql>select * from  tbUsers</house-keeping-test-sql>  
  21.   </proxool>     
  22.    
  23. </something-else-entirely>  







  1. package cn.cstnet.cstnms.config.util;
    //package cn.cstnet.cstnms.report.*;
     
    import java.sql.Connection;  
    import java.sql.DriverManager;  
    import java.sql.ResultSet;  
    import java.sql.SQLException;  
    import java.sql.Statement;  
    import org.logicalcobwebs.proxool.ProxoolException;  
    import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;  
     
    public  class proxoolTest {  
       /** 
        * @param proxool方式 
        * @throws ProxoolException  
        * @throws ClassNotFoundException  
        */  
       public static void main(String[] args) throws Exception {  
                   Connection conn =null;  
                   Statement stmt = null;  
                   ResultSet rs = null;  
              try {  
    //                System.out.println(test.class.getResource("/").toString());  
    //                System.out.println(test.class.getResource("/").getPath().toString());  
                     
                    //Java应用中先要加载配置文件,否则谁知道你配置给谁用的 以下两种方式都可以    
                   //JAXPConfigurator.configure("D://TempWorkSpace//ProxoolTest//"+"src//proxool.xml", false);  //绝对路径方式   
                     
                   JAXPConfigurator.configure("d:/eclipse-flex/eclipse/workspace/ITraffic/WebContent/WEB-INF/proxool.xml", false); //相对路径方式  
                     
                   String testsql = "select * from fys ";   
                   //1:注册驱动类,这次这个驱动已经不是Oracle的驱动了,是Proxool专用的驱动   
                   Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");   
                   //2:创建数据库连接,这个参数是一个字符串,是数据源的别名,在配置文件中配置的timalias,参数格式为:proxool.数据源的别名   
                   conn = DriverManager.getConnection("proxool.report_cfg_8_104");   
                   //3:创建执行SQL的对象   
                   stmt = conn.createStatement();   
                   //4:执行SQL,并获取返回结果   
                   rs = stmt.executeQuery(testsql);   
                   //5:处理返回结果,此处打印查询结果   
                   while (rs.next()) {  
                       System.out.print(rs.getLong("id") + "/t");   
                       System.out.print(rs.getString("fy_name") + "/t");   
                       System.out.println();   
                   }   
     
              } catch (SQLException e) {  
                  e.printStackTrace();  
              }finally{  
                  try {  
                      if(rs!=null) rs.close();  
                      if(stmt!=null) stmt.close();  
                      //6:关闭数据库连接   
                      conn.close();  
               } catch (SQLException e) {  
                e.printStackTrace();  
               }  
              }  
       } 


    }