package util;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DataBase {
/**
* 数据连接实例变量
*/
private Connection conn;
public Connection getConn() {
return conn;
}
/**
* 构造方法
* @param conn
*/
public DataBase(Connection conn){
this.conn = conn;
}
/**
* 构造方法
* @param isAutoCommit 是否自动提交
* @param conn
* @throws Exception
*/
public DataBase(boolean isAutoCommit,Connection conn) throws Exception{
this.conn = conn;
this.conn.setAutoCommit(isAutoCommit);
}
/**
* 构造方法
* @param isAutoCommit
* @throws Exception
*/
public DataBase(boolean isAutoCommit) throws Exception{
try{
this.conn = DBConnection.getInstance().getConnection();
if(conn != null){
System.out.println("数据库连接成功");
}
}catch (Exception e) {
System.out.print("数据库连接失败(" + e.getLocalizedMessage() + ")");
throw new SQLException("Fail at create dababase connection!"+ e.getMessage());
}
//设置是否自动提交
try{
if(conn != null){
this.conn.setAutoCommit(isAutoCommit);
}else{
System.out.println("11");
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 提交事务处理
* @throws Exception
*/
public void commit() throws Exception{
try {
this.conn.commit();
} catch (SQLException e) {
throw new Exception("Fail at database commit!" + e.getMessage());
}
}
/**
* 事务回滚
*/
public void rollback(){
try {
this.conn.rollback();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 关闭ResultSet
* @param rs
*/
public void close(ResultSet rs){
if(rs != null){
try {
Statement stmt = rs.getStatement();
rs.close();
rs = null;
if(stmt != null){
stmt.close();
stmt = null;
}
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭ResultSet失败");
}
}
}
/**
* 关闭连接
*/
public void cleanup(){
try{
if(this.conn != null){
if(!conn.isClosed()){
this.conn.close();
}
}
}catch(Exception e){
e.printStackTrace();
}
}
/**
* 执行update
* @param sql
* @return
* @throws SQLException
*/
public int execSqlUpdate(String sql) throws SQLException{
Statement stmt = null;
try{
int execResult;
stmt = this.conn.createStatement();
execResult = stmt.executeUpdate(sql);
//stmt.close();
return execResult;
}catch(Exception e){
String username = this.conn.getMetaData().getUserName();
String url = this.conn.getMetaData().getURL();
throw new SQLException("在" + url + "的用户" + username + ",执行SQL失败("
+ e.getMessage() + ")!SQL:[" + sql + "]");
}finally{
try{
if(!stmt.isClosed()){
stmt.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/**
* 得到ResultSet记录
*
* @param sql
* @return
* @throws Exception
*/
public ResultSet getRS(String sql) throws SQLException {
Statement stmt = null;
ResultSet rs = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
if (stmt != null) {
stmt.close();
stmt = null;
}
String userName = conn.getMetaData().getUserName();
String url = conn.getMetaData().getURL();
throw new SQLException("在" + url + "的用户" + userName + ",执行SQL失败("
+ e.getMessage() + ")!SQL:[" + sql + "]");
}
return rs;
}
/**
* @param args
*/
public static void main(String[] args) {
ResultSet rs = null;
try {
DataBase db = new DataBase(true);
String sql = "select id as ID,name as NAME from app_user";
rs = db.getRS(sql);
while(rs.next()){
long userId = rs.getLong(1);
String userName = rs.getString(2);
System.out.println("用户id:"+userId+" 用户名:"+userName);
}
db.close(rs);
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关推荐
"java增删改查JDBC封装类(泛型封装)"这个主题是关于如何利用泛型来优化JDBC操作,以提高代码的可读性、安全性和复用性。以下将详细讲解这个主题涉及的知识点。 1. **JDBC基础**: - JDBC是Java中连接数据库的标准...
在本主题中,我们将深入探讨如何使用Java JDBC来封装对SQL Server数据库的连接,从而创建一个实用工具类(Util类),提高代码的复用性和可维护性。 首先,确保你的项目已经引入了适用于SQL Server的JDBC驱动,如...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与各种数据库进行交互的一组接口和类。它提供了一种标准化的方法,让程序员可以使用SQL语句访问数据库,而无需关心具体的数据库实现细节。在Java应用...
在Java编程中,连接SQL Server数据库通常涉及到JDBC(Java Database Connectivity)技术。JDBC是Java平台的标准API,用于与各种数据库建立连接,执行SQL语句,并获取查询结果。在这个场景中,标题提到的"JAVA 连接...
Java JDBC(Java Database Connectivity)是Java平台中用于与各种数据库进行交互的标准接口。它允许Java应用程序连接到数据库,执行SQL语句,以及处理结果。在本教程中,我们将深入探讨如何使用JDBC连接Oracle数据库...
Java使用JDBC(Java Database Connectivity)封装连接数据库是一种常见的数据操作方式,尤其在初学者阶段。JDBC是Java平台的标准接口,它允许Java程序与各种类型的数据库进行交互。本教程将重点讲解如何通过简单的...
Java中的JDBC(Java Database Connectivity)是Java语言与各种数据库进行交互的标准接口,它使得开发者可以使用Java语言来访问和处理数据库。封装JDBC操作代码是为了提高代码的复用性,减少重复工作,并且能够更好地...
5. 结果集处理:提供方便的方法将查询结果映射到Java对象,比如使用POJO(Plain Old Java Object)或者自定义的数据类。 6. 错误处理:统一异常处理,简化错误捕获和日志记录。 描述中的“可以简化jdbc操作数据库...
这个提供的"JDBC连接池"类很可能是一个封装好的数据源类,它简化了连接池的配置和使用过程,使得开发者可以更专注于业务逻辑。导入此类后,只需按照类库的API进行操作,就能方便地管理和使用数据库连接。 总的来说...
以及java使用jdbc对mysql的事务处理,对execute、executeUpdate、executeQuery进行了封装,把繁琐的创建数据库连接对象、PreparedStatement对象、结果集对象,打开关闭连接进行了封装,只需要dao类继承DBTool几个...
在Java编程中,JDBC(Java Database Connectivity)是连接Java应用程序和各种数据库的标准接口。Oracle JDBC驱动程序是Oracle公司提供的特定于Oracle数据库的JDBC实现,使得Java开发者能够高效地执行SQL语句并处理...
在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的一套标准API。MySQL是一款广泛应用的关系型数据库管理系统,它与JDBC结合,为开发者提供了方便的数据操作接口。下面将详细介绍如何...
标题中的“jdbc 连接数据库封装类,可返回map,或者vo(自用)”指的是一个自定义的Java类库,用于简化Java应用程序通过JDBC(Java Database Connectivity)与数据库的交互。这类库通常会提供方便的方法来执行SQL...
在IT行业中,数据库操作是应用程序开发中的核心部分,而Java JDBC(Java Database Connectivity)是连接Java应用程序与数据库的标准接口。本篇文章将详细讲解如何利用JDBC进行数据操作封装,包括增删查改(CRUD)的...
在Java编程中,数据库连接和数据操作是常见的任务,而JDBC(Java Database Connectivity)是Java平台的标准接口,用于与各种数据库进行交互。本话题主要关注"Java连接数据事件封装",这通常涉及到如何优雅地处理...
在结合JDBC(Java Database Connectivity)API时,可以构建出更高效、更易维护的数据访问层。本案例通过注解的方式,简化了JDBC操作数据库的过程,并利用反射机制动态地调用这些操作。 首先,让我们详细了解Java...
JDBC(Java Database Connectivity)是 Java 语言中的一种标准数据库连接技术,几乎所有需要访问数据库的 J2EE 应用程序都直接或间接地使用了它。JDBC 提供了一个统一的接口来访问不同的关系数据库管理系统(DBMS)...
在Java编程中,JDBC(Java Database Connectivity)是用于与各种数据库进行交互的标准API。使用JDBC,开发者可以通过编写Java代码来执行SQL语句,从而实现对数据库的增删查改操作。本文将详细解释如何使用JDBC连接...
Java JDBC(Java Database Connectivity)是Java编程语言中用于与数据库交互的一组接口和类,它提供了标准的方法来连接、查询和操作数据库。本篇将详细解释这个“效率很高的java jdbc类”的核心概念和实现。 首先,...
Oracle JDBC 连接类是 Oracle 数据库与 Java 应用程序之间进行通信的重要桥梁。Java Database Connectivity (JDBC) 是 Java 平台的标准接口,它允许程序员使用 Java 语言来执行 SQL 命令,从而操作数据库。Oracle ...