Java – connection using connectionpooldatasource

Connect to the database I need I intend to use the connectionpooldatasource class But how to use this instance to set up details about the database name (to which I want it to connect) Please help solve this problem

Solution

Try reading this document and example

edit

The example has just been modified from the link above

Preparation steps: – download MySQL server – download MySQL Java driver – download Apache commons pool – download commons DBCP – open a MySQL client like MySQL workbench and use the next script to create a database

delimiter $$

CREATE DATABASE `test_stackoverflow` /*!40100 DEFAULT CHARACTER SET utf8 */$$

delimiter $$

CREATE TABLE `test_table` (
  `idtest_table` int(11) NOT NULL,`test_field` varchar(45) DEFAULT NULL,PRIMARY KEY (`idtest_table`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$

INSERT INTO `test_stackoverflow`.`test_table` (`idtest_table`,`test_field`) VALUES (1,'test1');
INSERT INTO `test_stackoverflow`.`test_table` (`idtest_table`,`test_field`) VALUES (2,'test2');

>Create a java project and add it to the classpath, myscl connector, pool and DBCP (you just need to download all these jars)

Add next course

import org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS;
import org.apache.commons.dbcp.datasources.SharedPoolDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.sqlException;

/**
 * @author Sergii.Zagriichuk
 */
public class Pool {
    private static DataSource ds;

    static {
        DriverAdapterCPDS cpds = new DriverAdapterCPDS();
        try {
            cpds.setDriver("com.MysqL.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        cpds.setUrl("jdbc:MysqL://localhost:3306/test_stackoverflow");
        cpds.setUser("root");
        cpds.setPassword("root");

        SharedPoolDataSource tds = new SharedPoolDataSource();
        tds.setConnectionPoolDataSource(cpds);
        tds.setMaxActive(10);
        tds.setMaxWait(50);

        ds = tds;
    }

    public static Connection getConnection() throws sqlException {
        return ds.getConnection();
    }
}

The user name and password should be changed to your database user / password

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.sqlException;
import java.sql.Statement;

public class MainClass {
    public static void main(String[] args) {
        Connection connection = null;
        Statement statement = null;
        ResultSet resultSet = null;

        try {
            connection = Pool.getConnection();
            // Do work with connection
            statement = connection.createStatement();
            String selectEmployeessql = "select * from test_table";
            resultSet = statement.executeQuery(selectEmployeessql);

            while (resultSet.next()) {
                printTestTable(resultSet);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (resultSet != null) {
                try {
                    resultSet.close();
                } catch (sqlException e) {
                } // nothing we can do
            }
            if (statement != null) {
                try {
                    statement.close();
                } catch (sqlException e) {
                } // nothing we can do
            }
            if (connection != null) {
                try {
                    connection.close();
                } catch (sqlException e) {
                } // nothing we can do
            }
        }
    }

    private static void printTestTable(ResultSet resultSet) throws sqlException {
        System.out.print(resultSet.getInt("idtest_table")+",");
        System.out.print(resultSet.getString("test_field"));
    }

}

Just run the main method and you'll see the test values printed to the console!

The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
分享
二维码
< <上一篇
下一篇>>