1. 程式人生 > >jdbc連線mysql連線資料庫工具類

jdbc連線mysql連線資料庫工具類

        以往寫程式碼,凡是牽扯到資料庫連線的,尤其是專案中的DAO層,每寫一個方法都要重複步驟:載入資料庫驅動,建立連線……使得程式碼十分的繁瑣,又很浪費時間,於是今天想了想,寫了一個連線資料庫的工具類,以便以後使用,經過測試,功能可以實現,其中的各個方法均可執行

        程式碼如下

import java.sql.*;

/**
 * @Description 連線資料庫工具類
 * @Author 單繼重
 * @Date 2016/10/26 14:50
 */
public class DBConn {
    private String DRIVER = "com.mysql.jdbc.Driver";
    private String USERNAME = "root";
    private String PASSWORD = "root";
    private String URL = "jdbc:mysql://localhost:3306/";
    private Connection conn = null;
    private PreparedStatement ps = null;
    private ResultSet rs = null;

    /**
     * 第一步:載入資料庫驅動
     * 第二步:建立資料庫連線
     * @param dbName 資料庫名
     */
    public DBConn(String dbName){
        try {
            Class.forName(DRIVER);
            URL = URL + dbName;
            conn = DriverManager.getConnection(URL,USERNAME,PASSWORD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 第三步:編寫sql語句
     * 第四步:建立sql語句執行器preparedStatement
     * @param sql sql語句
     */
    public void preparedStatement(String sql){
        try {
            ps = conn.prepareStatement(sql);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 第五步:將佔位符用引數替代
     * @param index 佔位符索引(第一個為1)
     * @param value 引數值
     */
    public void setString(int index,String value){
        try {
            ps.setString(index,value);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public void setInt(int index,int value){
        try {
            ps.setInt(index,value);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    /**
     * 第六步:執行sql語句,返回受影響行數
     * @return 執行sql語句受影響行數
     */
    public int executeUpdate(){
        try {
            //System.out.println(ps);
            return ps.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * 第六步:執行sql語句,返回結果集
     * @return ResultSet
     */
    public ResultSet executeQuery(){
        try {
            return ps.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    /**
     * 關閉連線以及其他
     */
    public void close(){
        try{
            if(rs != null){
                rs.close();
            }
            if(ps != null){
                ps.close();
            }
            if(conn != null){
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

         使用時,例項化本類,構造方法將資料庫名作為引數傳入,形成連結。