JdbcUtils

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JdbcUtils
{
    private final static String dbdriver = "com.mysql.jdbc.Driver";
    private final static String dburl = "jdbc:mysql://localhost:3306/study1?seUnicode=true&characterEncoding=UTF8";
    private final static String dbusername = "root";
    private final static String dbpassword = "root";
    static
    {
        try
        {
            Class.forName(dbdriver);
        } catch (ClassNotFoundException e)
        {
            throw new ExceptionInInitializerError(e);
        }
    }

    public static Connection createConnection() throws SQLException
    {
        return DriverManager.getConnection(dburl, dbusername, dbpassword);
    }

    public static void close(Connection conn)
    {
        if (conn != null)
        {
            try
            {
                conn.close();
            } catch (SQLException e)
            {

            }
        }
    }

    public static void close(Statement stmt)
    {
        if (stmt != null)
        {
            try
            {
                stmt.close();
            } catch (SQLException e)
            {

            }
        }
    }

    public static void close(ResultSet rs)
    {
        if (rs != null)
        {
            try
            {
                rs.close();
            } catch (SQLException e)
            {

            }
        }
    }

    public static int executeUpdate(String sql, Object... parameters)
            throws SQLException
    {
        Connection conn = null;
        try
        {
            conn = createConnection();
            return executeUpdate(conn, sql, parameters);
        } finally
        {
            close(conn);
        }
    }

    public static int executeUpdate(Connection conn, String sql,
            Object... parameters) throws SQLException
    {
        PreparedStatement ps = null;
        try
        {
            ps = conn.prepareStatement(sql);
            for (int i = 0; i < parameters.length; i++)
            {
                ps.setObject(i + 1, parameters[i]);
            }
            return ps.executeUpdate();
        } finally
        {
            close(ps);
        }
    }

    public static ResultSet executeQuery(String sql, Object... parameters)
            throws SQLException
    {
        Connection conn = null;
        try
        {
            conn = createConnection();
            return executeQuery(conn, sql, parameters);
        } catch (SQLException ex)
        {
            close(conn);
            throw ex;
        }
    }

    public static ResultSet executeQuery(Connection conn, String sql,
            Object... parameters) throws SQLException
    {
        PreparedStatement ps = null;
        try
        {
            ResultSet rs = null;
            ps = conn.prepareStatement(sql);
            for (int i = 0; i < parameters.length; i++)
            {
                ps.setObject(i + 1, parameters[i]);
            }
            rs = ps.executeQuery();
            return rs;
        } catch (SQLException ex)
        {
            close(ps);
            throw ex;
        }
    }

    public static void closeAll(ResultSet rs)
    {
        if (rs == null)
        {
            return;
        }
        try
        {
            close(rs.getStatement().getConnection());
            close(rs.getStatement());
            close(rs);
        } catch (SQLException e)
        {

        }
    }
    
    public static void rollback(Connection conn)
    {
        try
        {
            conn.rollback();
        } catch (SQLException e)
        {
            //
        }
    }
}

 

posted @ 2018-07-01 16:12  一品码农  阅读(247)  评论(0编辑  收藏  举报