Java Common Tool Class encapsulation--the tool class that connects the database __c#

Source: Internet
Author: User

Database Operation Tool class, for your reference.

Package com.itjh.javaUtil;
Import java.sql.Connection;
Import Java.sql.DriverManager;
Import java.sql.PreparedStatement;
Import Java.sql.ResultSet;
Import Java.sql.ResultSetMetaData;
Import java.sql.SQLException;
Import java.util.ArrayList;
Import java.util.Collections;
Import Java.util.HashMap;
Import java.util.List;
 
Import Java.util.Map;
Import Org.apache.commons.dbcp.ConnectionFactory;
Import Org.apache.commons.dbcp.DriverManagerConnectionFactory;
Import Org.apache.commons.dbcp.PoolableConnectionFactory;
Import Org.apache.commons.dbcp.PoolingDriver;
Import Org.apache.commons.dbutils.DbUtils;
Import Org.apache.commons.dbutils.QueryRunner;
Import Org.apache.commons.dbutils.handlers.MapListHandler;
Import Org.apache.commons.pool.ObjectPool;
 
Import Org.apache.commons.pool.impl.GenericObjectPool; /** * Connect the database to a comprehensive class.
</br> * Dependent Jar Pack: commons.dbcp-1.4,commons.dbutils-1.3,commons.pool-1.5.4 package. * * @author Jiangshuai * @date October 03, 2016/public class Dbutil {private String Dri = null;
    Private String URL = null;
    Private String username = null;
    Private String password = null; Private String poolname = null; Connection pool name private Objectpool ConnectionPool = null;
 
    Connection pool//corresponding timed query class private querythread querythread = null; /** * Function: Constructor * * @author Jiangshuai * @date October 03, 2016 * @param dri * Drive a full class name, for example:
     Com.mysql.jdbc.Driver. * @param URL * Database URL connection, for example: * "Jdbc:mysql://127.0.0.1:3306/test?autoreconnect=true&use
     Unicode=true&characterencoding=utf-8 "* @param userName * Database username, for example: root * @param password
     * Database password, for example: ABC * @param poolname * The name of the database connection pool created, such as mypool, note that a Web container cannot duplicate this name. */Public Dbutil (string dri, string URL, string userName, string password, string poolname) {This
        . Dri = DRI;
        This.url = URL;
        This.username = Username; This.password = password;
    This.poolname = poolname;
     /** * Executes SQL. * @param conn * connection * @param pstm * preparedstatement * @return int executes SQL pair
     should affect the line. * @throws SQLException * @author Jiangshuai * @date October 03, 2016/public int execute (Connection conn,
        PreparedStatement pstm) throws SQLException {try {return pstm.executeupdate ();
        Finally {close (conn);
     }/** * Query sql. * * @param conn * @param pstm * PreparedStatement * @return List<ma
    Result set of p<string,object>> query * @throws SQLException * @author Jiangshuai * @date October 03, 2016 * * Public list<map<string, object>> query (Connection conn, PreparedStatement pstm) throws Sqlexcep
        tion {try {return resultsettolist (Pstm.executequery ()); } finally {Close (conn);            }/** * Features: ResultSet to list<map<string,object>> * * * @param RS * ResultSet Raw DataSet * @return list<map<string,object>> * @throws java.sql.SQLException * @autho R Jiangshuai * @date October 03, 2016 * * Private list<map<string, object>> resultsettolist (ResultSet
 
        RS) throws Java.sql.SQLException {if (rs = = null) return collections.empty_list; ResultSetMetaData MD = Rs.getmetadata (); The structure information of the result set (RS) is obtained, such as the number of fields, the field name and so on int columnCount = Md.getcolumncount (); Returns the number of columns in this ResultSet object list<map<string, object>> List = new arraylist<map<string, Object>&gt
        ;();
        map<string, object> rowdata = new hashmap<string, object> ();
            while (Rs.next ()) {rowdata = new hashmap<string, object> (ColumnCount); for (int i = 1; I <= columnCount;i++) {rowdata.put (Md.getcolumnname (i), rs.getobject (i));
        } list.add (RowData);
    } return list;
     /** * Query SQL statements. * * @param SQL * Executed SQL statement * @return list<map<string,object>> * @throws sqlexce ption * @author Jiangshuai * @date October 03, 2016 * * Public list<map<string, object>> query (St
        Ring sql) throws SQLException {list<map<string, object>> results = null;
        Connection conn = null;
            try {conn = getconnection ();
            Queryrunner qr = new Queryrunner ();
        Results = qr.query (conn, SQL, New Maplisthandler ());
        Finally {close (conn);
    return results;
     /** * Query SQL statements based on parameters * * @param SQL * SQL statement * @param param * Parameters * @return list<map<string,object>> * @throws sqlexceptIon * @author Jiangshuai * @date October 03, 2016 * * Public list<map<string, object>> query (stri
        ng sql, Object param) throws SQLException {list<map<string, object>> results = null;
        Connection conn = null;
            try {conn = getconnection ();
            Queryrunner qr = new Queryrunner ();
        Results = (list<map<string, object>>) qr.query (conn, SQL, param, New Maplisthandler ());
        catch (SQLException e) {e.printstacktrace ();
        Finally {close (conn);
    return results; /** * Execute SQL statement * * @param SQL * Executed SQL statement * @return affected rows * @throws Except
        Ion * @author Jiangshuai * @date October 03, 2016/public int execute (String sql) throws Exception {
        Connection conn = getconnection ();
        int rows = 0; try {queryrunner qr =New Queryrunner ();
        rows = qr.update (conn, SQL);
        Finally {close (conn);
    } return rows;            /** * Execute SQL statement with parameters * * @param SQL * Executed SQL statement * @param params * Parameter * @return return affected rows * @throws Exception * @author Jiangshuai * @date October 03, 2016/Public
        int execute (String sql, object[] params) throws Exception {Connection conn = getconnection ();
        int rows = 0;
            try {queryrunner qr = new Queryrunner ();
        rows = qr.update (conn, SQL, params);
        Finally {close (conn);
    } return rows; /** * Close Connection * * @param conn * @throws SQLException * @author Jiangshuai * @date 2016 October 03 */public void Close (Connection conn) throws SQLException {if (conn!= null) {CONN.C
        Lose ();
  } dbutils.closequietly (conn);  /** * Start Connection Pool * * @author Jiangshuai * @date October 03, 2016/private void Startpool ()
        {try {class.forname (DRI);
        catch (ClassNotFoundException E1) {e1.printstacktrace ();
        } if (ConnectionPool!= null) {Shutdownpool ();
            try {connectionpool = new Genericobjectpool (null);
            ConnectionFactory connectionfactory = new drivermanagerconnectionfactory (URL, username, password); Poolableconnectionfactory poolableconnectionfactory = new Poolableconnectionfactory (Connec
            Tionfactory, ConnectionPool, NULL, "SELECT 1", false, true);
            Class.forName ("Org.apache.commons.dbcp.PoolingDriver");
            Poolingdriver Driver = (poolingdriver) drivermanager. Getdriver ("JDBC:APACHE:COMMONS:DBCP:"); Driver.registerpool (poolname, POOLABLECONNECTIONFACtory.getpool ());
        catch (Exception e) {e.printstacktrace ();
        //Open the query program Querythread = new Querythread (this);
    Querythread.start ();  /** * Close Connection Pool * * @author Jiangshuai * @date October 03, 2016/private void Shutdownpool () {try {poolingdriver driver = (poolingdriver) drivermanager. Getdriver ("Jdbc:apa
            CHE:COMMONS:DBCP: ");
            Driver.closepool (poolname);
        Turn off the timed query Querythread.setstartquery (FALSE);
        catch (SQLException e) {e.printstacktrace (); }/** * Get a connection * * @return * @author Jiangshuai * @date October 03, 2016/Publi
        C synchronized Connection getconnection () {Connection conn = null;
            try {if (ConnectionPool = null) Startpool ();
    conn = Drivermanager.getconnection ("JDBC:APACHE:COMMONS:DBCP:"                + poolname);
        catch (Exception e) {e.printstacktrace ();
    Return conn;
}/** * When the connection pool is started, the database is automatically timed to prevent the database connection from timing out.
    * * @author Jiangshuai * @date October 03, 2016/class Querythread extends Thread {private Dbutil dbutil = null;
 
    Whether to open query private Boolean startquery = true;
     /** * Function: The corresponding database connection. * * @author Jiangshuai * @date October 03, 2016 * @param dbutil * Database connection/Public Query
    Thread (Dbutil dbutil) {this.dbutil = Dbutil;
                    public void Run () {while (true) {try {if (startquery) {
                This.dbUtil.query ("SELECT 1");
            }//System.out.println (startquery+ "123");
            catch (Exception e) {e.printstacktrace ();
                Finally {try {thread.sleep (120000);
 catch (Interruptedexception e) {                   E.printstacktrace (); }}} public void Setstartquery (Boolean startquery) {//System.out.println ("Start
        Query shut: "+startquery);
    This.startquery = Startquery; }
}


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.