自己实现的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语言绘图:箱线图
使用ggplot2绘制箱线图 ######*****绘制箱线图代码*****####### data1$学区房 <- factor(data1$school, levels = 0:1, lab ...
- 用 Qt 控制 Nikon 显微镜的电动物镜转盘
用 Qt 控制 Nikon 显微镜的电动物镜转盘 最近的一个项目,用到了一台 Nikon 的金相显微镜,并且配了个电动的物镜转盘.为了控制这个电动物镜转盘,我折腾了差不多有4-5天.中间遇到了各种问题 ...
- Windows扩展屏开发总结
本文来自网易云社区 作者:梁敏 一.多屏设置 在设置-系统-可以点击显示器1和2,可以进行单独设置: "使之成为我的主显示器"可以设置当前显示器是主屏:主屏的选择会决定整个虚拟屏幕 ...
- 形象的理解Strong和Weak
Strong Weak
- Returning Values from Bash Functions
转自:https://www.linuxjournal.com/content/return-values-bash-functions Bash functions, unlike function ...
- 时屏蔽ios和android下点击元素时出现的阴影
-webkit-tap-highlight-color -webkit-tap-highlight-color:rgba(255,255,255,0)
- Linux-Shell脚本编程-学习-1-Linux基本命令
在学习Linux-Shell脚本编程之前,我们需要学习一定的Linux基本命令,不然在后面学习Shell脚本编程的的时候,我们就呵呵了. 我学习所用的系统是Ubuntu 16.04版本 也没有什么规则 ...
- CCF-NOIP-2018 提高组(复赛) 模拟试题(三)
T1 取球游戏 问题描述 现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别.从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个 ...
- 监控memcache服务
监控memcache服务是否正常,模拟用户(web客户端)检测. 使用nc命令加上set/get来模拟检测,以及监控响应时间及命中率. #!/bin/bash #################### ...
- deeplearning.ai课程学习(1)
本系列主要是我对吴恩达的deeplearning.ai课程的理解和记录,完整的课程笔记已经有很多了,因此只记录我认为重要的东西和自己的一些理解. 第一门课 神经网络和深度学习(Neural Netwo ...