java类连接数据库

package com.tool;

//登录连接 数据库
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class SuperUtil {
    private static Properties property;
    static {
        String url = SuperUtil.class.getClassLoader().getResource("super.properties").getPath();
        try {
            property = new Properties();
            property.load(new FileInputStream(url));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() {
        Connection connection = null;
        try {
            if(connection==null) {
                Class.forName(property.getProperty("driver"));
                String url = property.getProperty("url");
                String username = property.getProperty("username");
                String password = property.getProperty("password");
                connection = DriverManager.getConnection(url, username, password);
            }
            
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    public static void release(Connection con, Statement statement, ResultSet rs) {
        if (null != rs) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            } finally {
                rs = null;
            }
            if (null != statement) {
                try {
                    statement.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    statement = null;
                }
            }
            if (null != con) {
                try {
                    con.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                } finally {
                    con = null;
                }
            }
        }
    }

    /**


     * 增删改【Add、Del、Update】


     *


     * @param sql


     * @return int


     */


    public static int executeNonQuery(String sql) {
        int result = 0;
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = getConnection();
            stmt = conn.createStatement();
            result = stmt.executeUpdate(sql);
        } catch (SQLException err) {
            err.printStackTrace();
            free(null, stmt, conn);

        } finally {
            free(null, stmt, conn);
        }
        return result;
    }


 


    /**


     * 增删改【Add、Delete、Update】


     *


     * @param sql


     * @param obj


     * @return int


     */


    public static int executeNonQuery(String sql, Object... obj) {

       int result = 0;
        Connection conn = null;
        PreparedStatement pstmt = null;
        try {
            conn = getConnection();
            pstmt = conn.prepareStatement(sql);
            for (int i = 0; i < obj.length; i++) {
                pstmt.setObject(i + 1, obj[i]);

            }
            result = pstmt.executeUpdate();
        } catch (SQLException err) {

           err.printStackTrace();
            free(null, pstmt, conn);
        } finally {
            free(null, pstmt, conn);
        }


        return result;


    }


 


    /**


     * 查【Query】


     *


     * @param sql


     * @return ResultSet


     */


    public static ResultSet executeQuery(String sql) {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        try {

            conn = getConnection();
            stmt = conn.createStatement();
            rs = stmt.executeQuery(sql);
        } catch (SQLException err) {
            err.printStackTrace();
            free(rs, stmt, conn);
        }

       return rs;


    }


 


    /**


     * 查【Query】


     *


     * @param sql


     * @param obj


     * @return ResultSet


     */


    public static ResultSet executeQuery(String sql, Object... obj) {
        Connection conn = null;
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        try {


            conn = getConnection();


            pstmt = conn.prepareStatement(sql);
            for (int i = 0; i < obj.length; i++) {

               pstmt.setObject(i + 1, obj[i]);
            }
            rs = pstmt.executeQuery();
        } catch (SQLException err) {

           err.printStackTrace();
            free(rs, pstmt, conn);


        }

       return rs;
    }


 


    /**


     * 判断记录是否存在


     *


     * @param sql


     * @return Boolean


     */


    public static Boolean isExist(String sql) {


        ResultSet rs = null;


 


        try {


            rs = executeQuery(sql);


            rs.last();


            int count = rs.getRow();


            if (count > 0) {


                return true;


            } else {


                return false;


            }


        } catch (SQLException err) {


            err.printStackTrace();


            free(rs);


            return false;


        } finally {


            free(rs);


        }


    }


 


    /**


     * 判断记录是否存在


     *


     * @param sql


     * @return Boolean


     */


    public static Boolean isExist(String sql, Object... obj) {


        ResultSet rs = null;


 


        try {


            rs = executeQuery(sql, obj);


            rs.last();


            int count = rs.getRow();


            if (count > 0) {


                return true;


            } else {


                return false;


            }


        } catch (SQLException err) {


            err.printStackTrace();


            free(rs);


            return false;


        } finally {


            free(rs);


        }


    }


 


    /**


     * 获取查询记录的总行数


     *


     * @param sql


     * @return int


     */


    public static int getCount(String sql) {


        int result = 0;


        ResultSet rs = null;


 


        try {


            rs = executeQuery(sql);


            rs.last();


            result = rs.getRow();


        } catch (SQLException err) {


            free(rs);


            err.printStackTrace();


        } finally {


            free(rs);


        }


 


        return result;


    }


 


    /**


     * 获取查询记录的总行数


     *


     * @param sql


     * @param obj


     * @return int


     */


    public static int getCount(String sql, Object... obj) {


        int result = 0;


        ResultSet rs = null;


 


        try {


            rs = executeQuery(sql, obj);


            rs.last();


            result = rs.getRow();


        } catch (SQLException err) {


            err.printStackTrace();


        } finally {


            free(rs);


        }


 


        return result;


    }


 


    /**


     * 释放【ResultSet】资源


     *


     * @param rs


     */


    public static void free(ResultSet rs) {


        try {


            if (rs != null) {


                rs.close();


            }


        } catch (SQLException err) {


            err.printStackTrace();


        }


    }


 


    /**


     * 释放【Statement】资源


     *


     * @param st


     */


    public static void free(Statement st) {


        try {


            if (st != null) {


                st.close();


            }


        } catch (SQLException err) {


            err.printStackTrace();


        }


    }


 


    /**


     * 释放【Connection】资源


     *


     * @param conn


     */


    public static void free(Connection conn) {


        try {


            if (conn != null) {


                conn.close();


            }


        } catch (SQLException err) {


            err.printStackTrace();


        }


    }


 


    /**


     * 释放所有数据资源


     *


     * @param rs


     * @param st


     * @param conn


     */


    public static void free(ResultSet rs, Statement st, Connection conn) {


        free(rs);


        free(st);


        free(conn);


    }
}
url=jdbc:mysql://localhost:3306/shzxzzf?serverTimezone=GMT&useUnicode=true&characterEncoding=UTF-8
username=root
password=root
driver=com.mysql.jdbc.Driver

 

posted @ 2020-05-07 10:44  逐梦武威  阅读(263)  评论(0编辑  收藏  举报