whycrzg
2021-02-23 351b9a53cb9ecebdf8f79db0117f540d9c42c2a4
src/main/java/com/fgkj/db/DBUtil.java
@@ -1,170 +1,170 @@
package com.fgkj.db;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class DBUtil {
   private static ComboPooledDataSource mysql_ds = new ComboPooledDataSource();
   private static String classDriver="com.mysql.jdbc.Driver";
   //private static String burl="jdbc:mysql://192.168.0.34:5306/";
   //private static String username="website";
   //private static String password="amtb3737";
   private static String url="jdbc:mysql://118.89.139.230:3360/db_user";
   // private static String url="jdbc:mysql://192.168.10.221:3360/db_user";
   //private static String url="jdbc:mysql://192.168.10.222:3360/db_user";
   private static String username="root";
   private static String password="lmx8688139";
    //private static String url="jdbc:mysql://192.168.7.34:3360/db_user";
    // private static String url="jdbc:mysql://127.0.0.1:3306/db_user";
   // private static String username="root";
   // private static String password="root";
   private static int conncount_max = 500;
    private static int conncount_min=2;
    private static int MaxStatements = 0;
    private static int MaxIdleTime=60;
    private static int InitialPoolSize=2;
    static{
       try {
         //Thread.sleep(1000*60);
         mysql_ds.setDriverClass(classDriver);
         mysql_ds.setUser(username);
         mysql_ds.setPassword(password);
         mysql_ds.setMaxPoolSize(conncount_max);
         mysql_ds.setMinPoolSize(conncount_min);
         //mysql_ds.setIdleConnectionTestPeriod(60);
         mysql_ds.setJdbcUrl(url);
         // 设置连接池中的最大Statements数量!
         mysql_ds.setMaxStatements(MaxStatements);
            // 设置连接池的最大空闲时间!
         mysql_ds.setMaxIdleTime(MaxIdleTime);
         // 设置初始连接池的大小!
         mysql_ds.setInitialPoolSize(InitialPoolSize);
         mysql_ds.setIdleConnectionTestPeriod(60);
         //mysql_ds.setPreferredTestQuery("SELECT 1");
         //mysql_ds.setIdleConnectionTestPeriod(1800);
         //mysql_ds.setMaxIdleTime(25000);
         //mysql_ds.setAcquireRetryDelay(100);
         //mysql_ds.setBreakAfterAcquireFailure(false);
         //当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒,默认为0
         //mysql_ds.setCheckoutTimeout(10000);
         //因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
         //时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
         //等方法来提升连接测试的性能。Default: false
         //mysql_ds.setTestConnectionOnCheckin(false);
         //如果设置为true,每次从池中取一个连接,将做一下测试,使用automaticTestTable 或者 preferredTestQuery,做一条查询语句.看看连接好不好用,不好用,就关闭它,重新从池中拿一个.
         //mysql_ds.setTestConnectionOnCheckout(true);
         //System.out.println("11111111111111111111111111");
      } catch (Exception e) {
         e.printStackTrace();
      }
    }
   public static Connection getConn(){
      /*//System.out.println(DBUtil.getUrl());
      Connection conn=null;
      try {
         Class.forName(classDriver);
         conn=DriverManager.getConnection(url+databaseName, username, password);
      } catch (ClassNotFoundException e) {
         e.printStackTrace();
      } catch (SQLException e) {
      }*/
      Connection conn = null;
      try {
         conn = mysql_ds.getConnection();
      } catch (SQLException e) {
         e.printStackTrace();
      }
      return conn;
   }
   //获取当前连接数
   public static void getConnections(){
        try {
           //System.out.println("最大连接数: "+mysql_ds.getMaxPoolSize());// 最大连接数
            //System.out.println("最小连接数: "+mysql_ds.getMinPoolSize());// 最小连接数
         System.out.println("正在使用连接数: "+mysql_ds.getNumBusyConnections());// 正在使用连接数
         System.out.println("空闲连接数: "+mysql_ds.getNumIdleConnections());// 空闲连接数
          //System.out.println("总连接数: "+mysql_ds.getNumConnections());// 总连接数
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
   }
   //设置IP地址
   public static void    setUrl(String ip) {
      DBUtil.url = "jdbc:mysql://"+ip+":5306";
      //System.out.println(DBUtil.url);
   }
   public static String getUrl() {
      return url;
   }
   //关闭资源
   public static void close(ResultSet rs,Statement stat,Connection conn){
      try {
         if(rs != null)
            rs.close();
      } catch (SQLException e) {
         e.printStackTrace();
      }
      try {
         if(stat != null)
            stat.close();
      } catch (SQLException e) {
         e.printStackTrace();
      }
      try {
         if(conn != null){
            conn.close();
         }
      } catch (SQLException e) {
         e.printStackTrace();
      }
   }
   /**
    * 初始化连接池
    */
   public static void initPool(){
      close(null, null, getConn());
   }
   public static void main(String[] args){
      //System.out.println("start...");
      //System.out.println(getConn());
      //System.out.println("end...");
      Connection conn=DBUtil.getConn();
      DBUtil.getConnections();
      DBUtil.close(null, null, conn);
      while(true){
         DBUtil.getConnections();
         try {
            Thread.sleep(1000);
         } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }
      }
   }
}
// package com.fgkj.db;
//
// import java.sql.Connection;
// import java.sql.ResultSet;
// import java.sql.SQLException;
// import java.sql.Statement;
//
//
// import com.mchange.v2.c3p0.ComboPooledDataSource;
//
// public class DBUtil {
//    private static ComboPooledDataSource mysql_ds = new ComboPooledDataSource();
//    private static String classDriver="com.mysql.jdbc.Driver";
//    //private static String burl="jdbc:mysql://192.168.0.34:5306/";
//    //private static String username="website";
//    //private static String password="amtb3737";
//
//    private static String url="jdbc:mysql://118.89.139.230:3360/db_user";
//    // private static String url="jdbc:mysql://192.168.10.221:3360/db_user";
//    //private static String url="jdbc:mysql://192.168.10.222:3360/db_user";
//    private static String username="root";
//    private static String password="lmx8688139";
//     //private static String url="jdbc:mysql://192.168.7.34:3360/db_user";
//     // private static String url="jdbc:mysql://127.0.0.1:3306/db_user";
//    // private static String username="root";
//    // private static String password="root";
//
//
//    private static int conncount_max = 500;
//     private static int conncount_min=2;
//     private static int MaxStatements = 0;
//     private static int MaxIdleTime=60;
//     private static int InitialPoolSize=2;
//
//     static{
//        try {
//          //Thread.sleep(1000*60);
//          mysql_ds.setDriverClass(classDriver);
//          mysql_ds.setUser(username);
//          mysql_ds.setPassword(password);
//          mysql_ds.setMaxPoolSize(conncount_max);
//          mysql_ds.setMinPoolSize(conncount_min);
//          //mysql_ds.setIdleConnectionTestPeriod(60);
//          mysql_ds.setJdbcUrl(url);
//
//          // 设置连接池中的最大Statements数量!
//          mysql_ds.setMaxStatements(MaxStatements);
//
//             // 设置连接池的最大空闲时间!
//          mysql_ds.setMaxIdleTime(MaxIdleTime);
//          // 设置初始连接池的大小!
//          mysql_ds.setInitialPoolSize(InitialPoolSize);
//          mysql_ds.setIdleConnectionTestPeriod(60);
//          //mysql_ds.setPreferredTestQuery("SELECT 1");
//          //mysql_ds.setIdleConnectionTestPeriod(1800);
//
//          //mysql_ds.setMaxIdleTime(25000);
//          //mysql_ds.setAcquireRetryDelay(100);
//
//          //mysql_ds.setBreakAfterAcquireFailure(false);
//
//          //当连接池用完时客户端调用getConnection()后等待获取新连接的时间,超时后将抛出SQLException,如设为0则无限期等待。单位毫秒,默认为0
//          //mysql_ds.setCheckoutTimeout(10000);
//
//          //因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的
//          //时候都将校验其有效性。建议使用idleConnectionTestPeriod或automaticTestTable
//          //等方法来提升连接测试的性能。Default: false
//          //mysql_ds.setTestConnectionOnCheckin(false);
//
//          //如果设置为true,每次从池中取一个连接,将做一下测试,使用automaticTestTable 或者 preferredTestQuery,做一条查询语句.看看连接好不好用,不好用,就关闭它,重新从池中拿一个.
//          //mysql_ds.setTestConnectionOnCheckout(true);
//          //System.out.println("11111111111111111111111111");
//       } catch (Exception e) {
//          e.printStackTrace();
//       }
//     }
//
//
//    public static Connection getConn(){
//       /*//System.out.println(DBUtil.getUrl());
//       Connection conn=null;
//       try {
//          Class.forName(classDriver);
//          conn=DriverManager.getConnection(url+databaseName, username, password);
//       } catch (ClassNotFoundException e) {
//          e.printStackTrace();
//       } catch (SQLException e) {
//       }*/
//       Connection conn = null;
//       try {
//          conn = mysql_ds.getConnection();
//       } catch (SQLException e) {
//          e.printStackTrace();
//       }
//       return conn;
//    }
//    //获取当前连接数
//    public static void getConnections(){
//         try {
//            //System.out.println("最大连接数: "+mysql_ds.getMaxPoolSize());// 最大连接数
//             //System.out.println("最小连接数: "+mysql_ds.getMinPoolSize());// 最小连接数
//          System.out.println("正在使用连接数: "+mysql_ds.getNumBusyConnections());// 正在使用连接数
//          System.out.println("空闲连接数: "+mysql_ds.getNumIdleConnections());// 空闲连接数
//           //System.out.println("总连接数: "+mysql_ds.getNumConnections());// 总连接数
//       } catch (SQLException e) {
//          // TODO Auto-generated catch block
//          e.printStackTrace();
//       }
//
//    }
//    //设置IP地址
//    public static void    setUrl(String ip) {
//       DBUtil.url = "jdbc:mysql://"+ip+":5306";
//       //System.out.println(DBUtil.url);
//    }
//
//    public static String getUrl() {
//       return url;
//    }
//    //关闭资源
//    public static void close(ResultSet rs,Statement stat,Connection conn){
//       try {
//          if(rs != null)
//             rs.close();
//
//       } catch (SQLException e) {
//          e.printStackTrace();
//       }
//       try {
//          if(stat != null)
//             stat.close();
//       } catch (SQLException e) {
//          e.printStackTrace();
//       }
//       try {
//          if(conn != null){
//             conn.close();
//          }
//       } catch (SQLException e) {
//          e.printStackTrace();
//       }
//    }
//
//    /**
//     * 初始化连接池
//     */
//    public static void initPool(){
//       close(null, null, getConn());
//    }
//
//    public static void main(String[] args){
//       //System.out.println("start...");
//       //System.out.println(getConn());
//       //System.out.println("end...");
//       Connection conn=DBUtil.getConn();
//       DBUtil.getConnections();
//       DBUtil.close(null, null, conn);
//       while(true){
//          DBUtil.getConnections();
//          try {
//             Thread.sleep(1000);
//          } catch (InterruptedException e) {
//             // TODO Auto-generated catch block
//             e.printStackTrace();
//          }
//       }
//
//
//    }
// }