zoukankan      html  css  js  c++  java
  • C3p0实践

    jar包

    1. c3p0-0.9.2.1.jar
    2. mchange-commons-java-0.2.3.4.jar
    3. mysql-connector-java-5.1.28-bin.jar

    建立数据库

    CREATE TABLE `employee` (
      `EMPLOYEEID` bigint(20) NOT NULL AUTO_INCREMENT,
      `EMPLOYEENAME` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`EMPLOYEEID`)
    );

    数据源:

    package com.dataSource.c3p0;

    import java.beans.PropertyVetoException;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.SQLException;

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    public class DataSource {

        private static DataSource     datasource;
        private ComboPooledDataSource cpds;

        private DataSource() throws IOException, SQLException, PropertyVetoException {
            cpds = new ComboPooledDataSource();
            cpds.setDriverClass("com.mysql.jdbc.Driver")//loads the jdbc driver
            cpds.setJdbcUrl("jdbc:mysql://localhost/test");
            cpds.setUser("root");
            cpds.setPassword("root");

            // the settings below are optional -- c3p0 can work with defaults
            cpds.setMinPoolSize(5);
            cpds.setAcquireIncrement(5);
            cpds.setMaxPoolSize(20);
            cpds.setMaxStatements(180);

        }

        public static DataSource getInstance() throws IOException, SQLException, PropertyVetoException {
            if (datasource == null) {
                datasource = new DataSource();
                return datasource;
            else {
                return datasource;
            }
        }

        public Connection getConnection() throws SQLException {
            return this.cpds.getConnection();
        }

    }

    测试主程序

    package com.dataSource.c3p0;

    import java.beans.PropertyVetoException;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;

    public class C3P0DataSourceExample {

        public static void main(String[] argsthrows PropertyVetoException, SQLException, IOException {
            Connection connection = null;
            Statement statement = null;
            ResultSet resultSet = null;
            try {
                connection = DataSource.getInstance().getConnection();
                statement = connection.createStatement();
                resultSet = statement.executeQuery("select * from employee");
                  while (resultSet.next()) {
                      System.out.println("employeeid: " + resultSet.getString("employeeid"));
                      System.out.println("employeename: " + resultSet.getString("employeename"));
                  }
            } catch (SQLException e) {
                e.printStackTrace();
            finally {
                if (resultSet != nulltry resultSet.close()catch (SQLException e) {e.printStackTrace();}
                if (statement != nulltry statement.close()catch (SQLException e) {e.printStackTrace();}
                if (connection != nulltry connection.close()catch (SQLException e) {e.printStackTrace();}
            }
        }
    }

    输出:

    employeeid: 25
    employeename: rock
    employeeid: 29
    employeename: mary

  • 相关阅读:
    About chrysanthemum and matrimony vine
    time stamp in javascript
    Feeling kind of the sorrow
    从零开始入门 K8s | Kubernetes API 编程利器:Operator 和 Operator Framework
    从零开始入门 K8s | Kubernetes API 编程范式
    Apache Flink 1.10.0 发布 | 云原生生态周报 Vol. 38
    回顾 | Kubernetes SIG-Cloud-Provider-Alibaba 首次网研会(含 PPT 下载)
    开发函数计算的正确姿势——运行 Selenium Java
    Serverless 解惑——函数计算如何访问 Mongo 数据库
    开发函数计算的正确姿势——使用 brotli 压缩大文件
  • 原文地址:https://www.cnblogs.com/daxiong225/p/4688909.html
Copyright © 2011-2022 走看看