JDBC工具类——JdbcUtils(6)
JDBC工具类——JdbcUtils(6)
前言
本系列文章介绍JDBC工具类——JdbcUtils
的封装,部分实现参考了Spring框架的JdbcTemplate
。
完整项目地址:https://github.com/byx2000/JdbcUtils
更新操作的封装
下面是更新操作的代码:
Connection conn = null;
PreparedStatement stmt = null;
try
{
// 获取连接
conn = JdbcUtils.getConnection();
// 构造语句
stmt = JdbcUtils.createPreparedStatement(conn,
"INSERT INTO users(username, password) VALUES(?, ?)",
"byx", "123456");
// 执行语句,获取影响行数
int count = stmt.executeUpdate();
}
catch (Exception e)
{
// 处理异常
...
}
finally
{
// 释放资源
JdbcUtils.close(stmt, conn);
}
其实更新操作的封装比查询操作要简单得多,因为更新操作并不涉及到结果集的处理,所以只需要把所有流程封装到一个update
函数里就行了:
public class JdbcUtils
{
...
public static int update(String sql, Object... params)
{
Connection conn = null;
PreparedStatement stmt = null;
try
{
conn = getConnection();
stmt = createPreparedStatement(conn, sql, params);
return stmt.executeUpdate();
}
catch (Exception e)
{
throw new RuntimeException(e.getMessage(), e);
}
finally
{
close(stmt, conn);
}
}
...
}
sql
和params
分别表示传入的sql语句和sql参数,update
方法的返回值是影响行数。
update
函数内部的异常处理与query
一样,这里不再分析。
此时客户代码可以这样对数据库进行更新:
// 插入用户
int count = JdbcUtils.update("INSERT INTO users(username, password) VALUES(?, ?)",
"byx", "123456");
// 删除用户
int count = JdbcUtils.update("DELETE FROM users WHERE username = ? AND password = ?",
"byx", "123456");
总结
到这里,整个系列的文章就结束了。如果读者有任何建议和改进方法,欢迎留言。