package org.cric.other;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class DBUtils {
private String driverName ="com.mysql.jdbc.Driver";//MySql驱动
private final String url = "jdbc:mysql://localhost:3306/users";//users表示数据库
private final String username = "root";
private final String password = "root";
private Connection con=null;
private Statement stmt=null;
private ResultSet rs=null;
/**
* 加载数据库驱动
*/
public DBUtils(){
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 连接数据库
* @return
* @throws SQLException
*/
public Connection getConnection() throws SQLException{
if(con==null || con.isClosed())
con=java.sql.DriverManager.getConnection(url,username,password);
return con;
}
/**
* 执行数据库操作-查
* @param sqlStr
* @return
*/
public ResultSet executeQuery(String sqlStr){
if(sqlStr==null || sqlStr.length()==0)
{
return null;
}
try {
this.getConnection();
stmt=con.createStatement();
rs=stmt.executeQuery(sqlStr);
return rs;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
/**
* 执行数据库操作---增,删,改
* @param sqlStr
* @return
*/
public boolean executeUpdate(String sqlStr){
if(sqlStr==null || sqlStr.length()==0)
{
return false;
}
try {
this.getConnection();
stmt=con.createStatement();
stmt.executeUpdate(sqlStr);
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}finally{
if(stmt!=null)
try {
stmt.close();
stmt=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(con!=null)
try {
con.close();
con=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 关闭stmt资源
*/
public void closeStmt(){
if(stmt!=null)
try {
stmt.close();
stmt=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 关闭con资源
*/
public void closeConnetion(){
if(con!=null)
try {
con.close();
con=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 多条数据库更新--事务
* @param al
* @return
*/
public boolean executeUpdates(ArrayList<String> al)
{
if(al==null||al.size()==0)
{
return false;
}
try
{
this.getConnection();
this.con.setAutoCommit(false);
stmt=con.createStatement();
for(int i=0;i<al.size();i++){
stmt.addBatch(al.get(i));
}
stmt.executeBatch();
this.con.commit();
this.con.setAutoCommit(true);
return true;
}
catch(SQLException ex)
{
ex.printStackTrace();
try {
if(con!=null)
con.rollback();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}finally{
try {
if (stmt != null)
{
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (con != null)
{
con.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
分享到:
相关推荐
6. **异常处理**:理解DbUtils如何封装SQLException,并在程序中适当地捕获和处理。 在提供的"JAVA-JDBC-DbUtils教程"中,你可能会学习到如何设置开发环境,创建数据库连接,编写SQL语句,以及如何使用DbUtils进行...
标题 "JDBC_DBUtils查询操作处理" 涉及到的是Java编程中使用JDBC(Java Database Connectivity)和DBUtils工具库进行数据库查询的操作。DBUtils是Apache组织提供的一款开源的Java数据库操作工具,它简化了JDBC的使用...
使用了Apache Commons DbUtils库中的类和方法封装JDBC,使用了org.apache.commons.dbutils.QueryRunner、org.apache.commons.dbutils.handlers.BeanHandler和org.apache.commons.dbutils.handlers.BeanListHandler等...
“基于Java语言的JDBC操作封装与简化数据查询的commons-dbutils设计源码”项目正是为了解决这一问题而生。该项目基于Java语言,利用commons-dbutils这一库,通过封装和简化JDBC操作,提供了一种高效、简洁的数据访问...
4. **异常处理**: DBUtils封装了JDBC的异常,提供更友好的异常类型,如`DbException`,使开发者更容易处理数据库操作中的错误。 使用DBUtils与JDBC的对比: - **简化代码**:DBUtils隐藏了许多JDBC的繁琐细节,比如...
commons-dbutils的再封装jar包,Blog文件的示例代码
Commons DbUtils作为一款轻量级的JDBC封装工具,在不影响性能的前提下极大地简化了数据库操作的复杂度,提升了开发效率。无论是对于初学者还是有经验的开发者来说,都是一个值得学习和使用的优秀工具。通过本文的...
commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能。因此dbutils成为很多不喜欢hibernate的公司...
DbUtils的主要功能是作为一个数据库访问的辅助工具,它基于Java的JDBC API进行封装,提供了一套简单易用的API,使得开发者可以更加便捷地执行数据库的CRUD(创建、读取、更新、删除)操作。它的设计目标是减少编写...
- **简单易用**: DBUtils通过简单的API封装了JDBC的复杂性,使得开发者可以专注于业务逻辑,而不是数据库交互的细节。 - **异常处理**: 自动处理JDBC的异常,确保资源被正确释放,避免内存泄露和资源耗尽。 - **...
DBUtils 最主要的功能是对 JDBC 结果集进行封装,能够将查询结果直接转换为 JavaBean 对象,从而减轻开发人员的工作负担,避免手动处理结果集时可能出现的错误。 在使用 DBUtils 时,需要注意以下几点: 1. **混用...
Xmind文件下载,表格梳理数据库连接相关知识,包括jdbc,DBUtils,Druid,dbcp,d3p0等知识点,JDBC_java数据库连接表格(带jar包,封装类,代码等),
1.Servlet 封装,使用反射Servlet支持多个方法(BaseServlet抽取) 2.使用BaseServlet解决中文乱码问题 http://blog.csdn.net/justerdu/article/details/50893602 3.使用Filter过滤器解决中文乱码问题 4.使用EL表达式...
DBUtils的核心理念是基于数据库连接池和对JDBC API的封装,以提高性能和易用性。在导入并使用“commons-dbutils-1.3.jar”后,开发者可以利用其提供的便捷功能,如QueryRunner类,用于执行SQL查询和更新操作,以及...
DBUtils将常见的JDBC编程模式进行了抽象和封装,避免了编写大量的样板代码,使得数据库访问更为简洁高效。下面将详细介绍DBUtils的核心功能和使用方法。 1. **连接管理**: DBUtils提供了`BasicDataSource`类,这...
DbUtils是一个小型的Java类库,主要目的是简化Java中的JDBC操作。JDBC(Java Database Connectivity)是Java平台的标准数据库访问API,允许应用程序与各种数据库进行交互。然而,直接使用JDBC编写代码时会遇到一些...
4. **Exception Handling**:DBUtils封装了JDBC异常,将其转换为更具体的运行时异常,如`QueryException`和`UpdateException`,这使得错误处理更直观。 5. **Connection Pool Integration**:DBUtils可以轻松地与...
5. **异常处理**:Dbutils 将 JDBC 抛出的 SQLException 进行封装,转换为自己的运行时异常,如 `DataAccessException` 和 `SQLExceptions`,这使得异常处理更加简洁,避免了层层捕获 SQLException。 在实际使用中...
dbutils的核心理念是将JDBC操作模板化,将常见的数据库操作如查询、更新、插入等封装成易于使用的API,从而减轻开发者的负担。这个库主要包含以下几个关键组件: 1. **QueryRunner**: 这是dbutils的核心工具类,...
8. **JDBC兼容性**: 虽然DBUtils是基于JDBC的,但它抽象了JDBC的一些复杂性,使得开发者无需直接与JDBC API打交道。这个模仿版本也应该做到了这一点,让你的代码更专注于业务逻辑而不是数据库细节。 通过学习和实践...