java实现的数据库管理类(mysql)

在我们使用数据库的时候,总会要写一个DBManager类来进行总体的数据库管理,在这里我们就要实现一个数据库管理类,这个是一个比较小型的数据库管理类,大体上实现了增删改查,在后面我们就会扩建这个数据库管理类,实现各种连接,来进行数据库的管理,好了,下面我们来看一下我们的代码:

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

public class DBManager {

    /**
     * 该方法用户连接数据库
     * 
     * @return 返回Connection的一个实例
     */
    private Connection getConnection() {

        Connection con = null;

        try {
            Class.forName(StaticVar.DRIVER_NAME).newInstance();

            con = DriverManager.getConnection(StaticVar.DB_URL,
                    StaticVar.USER_NAME, StaticVar.DB_PASSWD);

        } catch (InstantiationException e) {
            return null;
        } catch (IllegalAccessException e) {
            return null;
        } catch (ClassNotFoundException e) {
            return null;
        } catch (SQLException e) {
            return null;
        }

        return con;
    }

    /**
     * 用于查询sql语句
     * 
     * @param sql
     *            sql语句
     * @return 返回ResultSet集合
     */
    public ResultSet select(String sql) {
        ResultSet res = null;

        Connection con = getConnection();

        Statement state = null;

        if (!(con == null)) {

            try {
                state = con.createStatement();
                res = state.executeQuery(sql);
            } catch (SQLException e) {
                return null;
            }

        }

        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
                return null;
            }
        }

        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
                return null;
            }
        }

        return res;
    }

    /**
     * 向表中插入一个元素,返回插入后的元素的id
     * 
     * @param sql
     * @return
     */
    public int insert(String sql) {
        int iId = -1;

        Connection con = getConnection();

        Statement state = null;

        if (con != null) {
            try {
                state = con.createStatement();

                int res = state.executeUpdate(sql,
                        Statement.RETURN_GENERATED_KEYS);

                if (res != 0) {
                    ResultSet rs = state.getGeneratedKeys();
                    if (rs.next()) {
                        iId = rs.getInt(1);
                    }
                }
            } catch (SQLException e) {
                iId = -1;
            }

        }

        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
            }
        }

        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
            }
        }

        return iId;
    }

    /**
     * 修改表中的某个元素的数值
     * 
     * @param sql
     *            sql语句
     * @return 元素是否被成功修改
     */
    public boolean update(String sql) {
        boolean updated = false;

        Connection con = getConnection();
        Statement state = null;

        if (con != null) {
            try {
                state = con.createStatement();

                int res = state.executeUpdate(sql);

                if (res == 0) {
                    updated = false;
                } else {
                    updated = true;
                }
            } catch (SQLException e) {
                updated = false;
            }

        }

        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
            }
        }

        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
            }
        }

        return updated;
    }

    /**
     * 删除表中的某一个表项
     * 
     * @param sql
     *            sql语句
     * @return 返回是否删除成功
     */
    public boolean delete(String sql) {
        boolean deleted = false;

        Connection con = getConnection();

        Statement state = null;

        if (con != null) {
            try {
                state = con.createStatement();

                int res = state.executeUpdate(sql);

                if (res == 0) {
                    deleted = false;
                } else {
                    deleted = true;
                }

            } catch (SQLException e) {
                deleted = false;
            }

        }

        if (state != null) {
            try {
                state.close();
            } catch (SQLException e) {
            }
        }

        if (con != null) {
            try {
                con.close();
            } catch (SQLException e) {
            }
        }

        return deleted;
    }

}

下面看一下其中用到的一个类StaticVar。

StaticVar.java


public class StaticVar {

    public static final String DB_URL = "jdbc:mysql://localhost/db_test?useUnicode=true&characterEncoding=UTF-8";

    public static final String USER_NAME = "chen";
    public static final String DB_PASSWD = "******";
    public static final String DRIVER_NAME = "com.mysql.jdbc.Driver";



}

这样我们的一个小型的数据库管理类就实现了,至于后面的扩展,我们会在后面的博客中讲到。

posted @ 2015-08-13 14:14  陈洪波  阅读(576)  评论(0编辑  收藏  举报