java实现的数据库管理类(mysql)_MySQL
程序员文章站
2022-05-21 08:57:05
...
在我们使用数据库的时候,总会要写一个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";
}
这样我们的一个小型的数据库管理类就实现了,至于后面的扩展,我们会在后面的博客中讲到。