自己实现的JDBC工具类
jdbc.username=root
jdbc.password=leizhimin
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.IOException;
import java.sql.*;
import java.util.List;
import java.util.Properties;
/**
* JDBC工具类
*
* @author leizhimin 2009-11-24 9:28:03
*/
public class DBToolkit
{
private static final Log
log = LogFactory.getLog(DBToolkit.class);
private static String
url = null;
private static String
username = null;
private static String
password = null;
private static Properties
props = new Properties();
static {
try {
props.load(DBToolkit.class.getResourceAsStream("/jdbc.properties"));
} catch (IOException e) {
log.error("#ERROR# :系统加载sysconfig.properties配置文件异常,请检查!",
e);
}
url = (props.getProperty("jdbc.url"));
username = (props.getProperty("jdbc.username"));
password = (props.getProperty("jdbc.password"));
//注册驱动类
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
log.error("#ERROR# :加载数据库驱动异常,请检查!", e);
}
}
/**
* 创建一个数据库连接
*
* @return 一个数据库连接
*/
public static Connection
getConnection() {
Connection conn = null;
//创建数据库连接
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
log.error("#ERROR# :创建数据库连接发生异常,请检查!", e);
}
return conn;
}
/**
* 在一个数据库连接上执行一个静态SQL语句查询
*
* @param conn 数据库连接
* @param staticSql 静态SQL语句字符串
* @return 返回查询结果集ResultSet对象
*/
public static ResultSet
executeQuery(Connection conn, String staticSql) {
ResultSet rs = null;
try {
//创建执行SQL的对象
Statement stmt = conn.createStatement();
//执行SQL,并获取返回结果
rs = stmt.executeQuery(staticSql);
} catch (SQLException e) {
log.error("#ERROR# :执行SQL语句出错,请检查!\n" + staticSql, e);
}
return rs;
}
/**
* 在一个数据库连接上执行一个静态SQL语句
*
* @param conn 数据库连接
* @param staticSql 静态SQL语句字符串
*/
public static void executeSQL(Connection
conn, String staticSql) {
try {
//创建执行SQL的对象
Statement stmt = conn.createStatement();
//执行SQL,并获取返回结果
stmt.execute(staticSql);
} catch (SQLException e) {
log.error("#ERROR# :执行SQL语句出错,请检查!\n" + staticSql, e);
}
}
/**
* 在一个数据库连接上执行一批静态SQL语句
*
* @param conn 数据库连接
* @param sqlList 静态SQL语句字符串集合
*/
public static void executeBatchSQL(Connection
conn, List<String> sqlList) {
try {
//创建执行SQL的对象
Statement stmt = conn.createStatement();
for (String sql : sqlList) {
stmt.addBatch(sql);
}
//执行SQL,并获取返回结果
stmt.executeBatch();
} catch (SQLException e) {
log.error("#ERROR# :执行批量SQL语句出错,请检查!", e);
}
}
public static void closeConnection(Connection
conn) {
if (conn == null) return;
try {
if (!conn.isClosed()) {
//关闭数据库连接
conn.close();
}
} catch (SQLException e) {
log.error("#ERROR# :关闭数据库连接发生异常,请检查!", e);
}
}
}
本文出自 “熔
岩” 博客,请务必保留此出处http://lavasoft.blog.51cto.com/62575/233549
自己实现的JDBC工具类的更多相关文章
- MySQL数据库学习笔记(十一)----DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- MySQL数据库学习笔记(十)----JDBC事务处理、封装JDBC工具类
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- java使用注解和反射打造一个简单的jdbc工具类
a simple jdbc tools 如有转载和引用,请注明出处,谢谢 1. 定义我们需要的注解 要想实现对数据库的操作,我们必须知道数据表名以及表中的字段名称以及类型,正如hibernate 使用 ...
- 开源JDBC工具类DbUtils
本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUti ...
- MySQL JDBC事务处理、封装JDBC工具类
MySQL数据库学习笔记(十)----JDBC事务处理.封装JDBC工具类 一.JDBC事务处理: 我们已经知道,事务的概念即:所有的操作要么同时成功,要么同时失败.在MySQL中提供了Commit. ...
- DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类)
DAO设计模式实现数据库的增删改查(进一步封装JDBC工具类) 一.DAO模式简介 DAO即Data Access Object,数据访问接口.数据访问:故名思义就是与数据库打交道.夹在业务逻辑与数据 ...
- JDBC第三篇--【事务、元数据、改造JDBC工具类】
这是我JDBC的第一篇 http://blog.csdn.net/hon_3y/article/details/53535798 这是我JDBC的第二篇 http://blog.csdn.net/ho ...
- JDBC【事务、元数据、改造JDBC工具类】
1.事务 一个SESSION所进行的所有更新操作要么一起成功,要么一起失败 举个例子:A向B转账,转账这个流程中如果出现问题,事务可以让数据恢复成原来一样[A账户的钱没变,B账户的钱也没变]. 事例说 ...
- JDBC工具类完整版!
package com.aaa.util; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; impor ...
- jdbc工具类1.0
package cn.zhouzhou; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManag ...
随机推荐
- R语言绘图:ROC曲线图
使用pROC包绘制ROC曲线 #####***绘制ROC曲线***##### library("pROC") N <- dim(data2)[1] #数据长度 set.see ...
- SHIFT(文字列の指定位置数の移動)
文字ごとの項目内容の移動 以下のような SHIFT 命令のバリアントを使用すると.項目内容を移動することができます.SHIFT を使用すると.文字ごとに項目内容が移動します. 文字列の指定位置数の移動 ...
- Xshell入门教程介绍
免费软件 Xshell和 Xftp 都是 NetSarang 出品的优秀网络管理.安全传输工具.Xshell 是一个免费的安全终端仿真器,可以作为 SSH.TELNET 或 RLOGIN 的终端模拟, ...
- 开启一个项目如何上传到git
1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...
- qt 编译unresolved external symbol的错误解决
题外问题:.rc文件报错,里面引用的.h文件打不开. 方法:rc文件移除,然后重新添加就可以: unresolved external symbol的原因: 1.没有添加编译生成的moc文件,添加对应 ...
- Python-学习-小例子练习
网上了点小例子,练习一下下,都是特别简单的.而且这些代码也都是找的网上的代码,目的是在于练习一下Python和熟悉下Python的编码风格等等 学习一门语言,最快的方法就是把它用在世界的开发中,这样才 ...
- 自动化测试---mybatis的使用
mybatis如何实现了对数据库的操作: 1.通过Resources.getResourceAsReader()或者 Resources.getResourceAsStream()加载mybatis. ...
- 用jsp实现省市区三级联动下拉
jsp+jquery实现省市区三级联动下拉 不少系统都需要实现省市区三级联动下拉,像人口信息管理.电子商务网站.会员管理等,都需要填写地址相关信息.而用ajax实现的无刷新省市区三级联动下拉则可以改善 ...
- 09-Mysql数据库----外键的变种
本节重点: 如何找出两张表之间的关系 表的三种关系 一.介绍 因为有foreign key的约束,使得两张表形成了三种了关系: 多对一 多对多 一对一 二.重点理解如果找出两张表之间的关系 分析步骤: ...
- [leetcode-609-Find Duplicate File in System]
https://discuss.leetcode.com/topic/91430/c-clean-solution-answers-to-follow-upGiven a list of direct ...