Jdbc连接数据库、封装通用增删改查

Jdbc连接数据库、封装通用增删改查

需要mysql-connector-java-5.1.45.jar驱动连接


        
            mysql
            mysql-connector-java
            5.1.45
        

通用增删改查DBUtil访问数据库代码


public class DBUtil {
    private static String DRIVER = "com.mysql.jdbc.Driver";
    private static String USER = "root";
    private static String PWD = "password";
    private static String URL = "jdbc:mysql://localhost:3306/test";
    private static PreparedStatement pstmt = null;
    private static Connection connection = null;
    private static ResultSet rs = null;

	//获取连接
    public static Connection getConnection() throws ClassNotFoundException,
            SQLException {
        Class.forName(DRIVER);
        return DriverManager.getConnection(URL, USER, PWD);
    }
    //初始化sql
    public static PreparedStatement createPreparedStatement(String sql, Object[] params)
            throws SQLException, ClassNotFoundException {
        pstmt = getConnection().prepareStatement(sql);
        if (params != null) {
            for (int i = 0; i < params.length; i++) {
                pstmt.setObject(i + 1, params[i]);
            }
        }
        return pstmt;
    }
	//关闭所有连接
    public static void closeAll(ResultSet rs, Statement pstmt, Connection connection) {
        try {
            if (rs != null) rs.close();
            if (pstmt != null) pstmt.close();
            if (connection != null) connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }

    //通用增删改
    public boolean executeUpdate(String sql, Object[] params) {
        try {
            int count = createPreparedStatement(sql, params).executeUpdate();
            if (count > 0)
                return true;
            else
                return false;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return false;
        } catch (SQLException e) {
            e.printStackTrace();
            return false;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        } finally {
            closeAll(null, pstmt, connection);
        }
    }

    //通用查(注意返回数据类型)
    public static ResultSet executeQuery(String sql, Object[] params) {
        try {
            rs = createPreparedStatement(sql, params).executeQuery();
            return rs;
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            return null;
        } catch (SQLException e) {
            e.printStackTrace();
            return null;
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        } finally {
        }
    }
}

测试代码
只需传递sql和相应的参数

public class Test {

    public static void main(String[] args) {
        /**
         *  插入一条记录 并 查询全部
         * 
         */
        Student student = new Student();
        List students = new ArrayList();
        String sql_insert = "insert into test(id,name) values(?,?)";
        String sql_select = "select * from test";
        Object[] ob = {1, "zc"};
        Boolean in = DBUtil.executeUpdate(sql_insert, ob);
        if (in) {
            System.out.println("操作成功!");
        } else {
            System.out.println("操作失败!");
        }
        try {
            ResultSet resultSet = DBUtil.executeQuery(sql_select, null);
            while (resultSet.next()) {
                student.setId(resultSet.getInt("id"));
                student.setName(resultSet.getString("name"));
                students.add(student);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        
        System.out.println(students);
    }
}

你可能感兴趣的:(Jdbc连接数据库、封装通用增删改查)