import java.sql.*;
/**
* 数据库操作通用类
* 包括对[Access;SQL Server;Oracle;DB2;Informix;Sybase;PostgreSQL;Mysql]等数据库的操作
*/
public class CommonDB {
private Connection sqlCon;
private ResultSet rstSql;
private Statement stmS;
private String strCon;
private String driveName;
private boolean status;
private long rowcount;
/**
* 设置连接驱动名称,EG:
* @param drivename 驱动名称
* <p>[Access] sun.jdbc.odbc.JdbcOdbcDriver </p>
* <p>[SQL Server] com.microsoft.jdbc.sqlserver.SQLServerDriver </p>
* <p>[Oracle] oracle.jdbc.driver.OracleDriver </p>
* <p>[DB2] com.ibm.db2.jdbc.app.DB2Driver </p>
* <p>[Informix] com.informix.jdbc.IfxDriver </p>
* <p>[Sybase] com.sybase.jdbc.SybDriver </p>
* <p>[PostgreSQL] org.postgresql.Driver </p>
* <p>[Mysql] com.mysql.Driver </p>
*/
public void setDriveName(String drivename) {
this.driveName = drivename;
}
/**
* 设置连接源名称,EG:
* @param conname 数据库连接字符串
* <p>[Access] jdbc:odbc:bbs 或 jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=c:/smdb.mdb</p>
* <p>[SQL Server] jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=smdb</p>
* <p>[Oracle] jdbc:oracle:thin:@localhost:1521:smdb </p>
* <p>[DB2] jdbc:db2://localhost:5000/smdb </p>
* <p>[Informix] jdbc:informix-sqli://127.0.0.1:1533/smdb:INFORMIXSERVER=myserver;user=test;password=test </p>
* <p>[Sybase] jdbc:sybase:Tds:localhost:5007/smdb </p>
* <p>[PostgreSQL] jdbc:postgresql://localhost/smdb </p>
* <p>[Mysql] jdbc:mysql://127.0.0.1/smdb </p>
*/
public void setConnectName(String conname) {
this.strCon = conname;
}
/**
* 连接数据库
* @param username 帐号
* @param password 密码
* @return boolean status连接状态
*/
public boolean connect(String username, String password) {
try {
Class.forName(this.driveName).newInstance();
this.sqlCon = java.sql.DriverManager.getConnection(this.strCon, username, password);
this.status = true;
return true;
} catch (Exception e) {
this.status = false;
return false;
}
}
/**
* 执行一条SQL语句,execute sql(insert,update,delete,...)
* @param s SQL语句
* @return
*/
public boolean execute(String s) {
try {
this.stmS = this.sqlCon.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
this.stmS.executeUpdate(s);
this.status = true;
return true;
} catch (Exception e) {
this.status = false;
return false;
}
}
/**
* 执行一条SQL查询语句
* @param s SQL查询语句
* @return
*/
public boolean query(String s) {
try {
this.rowcount = 0;
this.stmS = this.sqlCon.createStatement();
this.rstSql = this.stmS.executeQuery(s);
while (this.nextrecord()) {
this.rowcount++;
}
this.rstSql = this.stmS.executeQuery(s);
this.status = true;
return true;
} catch (Exception e) {
this.status = false;
return false;
}
}
/**
* 返回查询到的记录数
* @return
*/
public long getrowcount() {
return this.rowcount;
}
/**
* 得到某个字段的值
* @param s 字段名称
* @return
*/
public String getstring(String s) {
try {
return this.rstSql.getString(s);
} catch (Exception ex) {
return "字段不存在!";
}
}
/**
* 得到某个字段的值
* @param s 字段名称
* @return
*/
public int getint(String s) {
try {
return Integer.parseInt(this.rstSql.getString(s));
} catch (Exception e) {
return 0;
}
}
/**
* 记录指针向下移一条
* @return
*/
public boolean nextrecord() {
try {
return this.rstSql.next();
} catch (Exception e) {
return false;
}
}
/**
* 从数据库取出数据后进行汉字字符编码
* @param s 要编码的串
* @return
*/
public String readChinese(String s) {
try {
String temp = new String(s.getBytes("GB2312"), "ISO8859_1");
return temp;
} catch (Exception e) {
return s;
}
}
/**
* 得到数据库操作的状态
* @return
*/
public boolean getstatus() {
return this.status;
}
/**
* 关闭所有数据库操作对象
* @return
*/
public boolean close() {
try {
if (this.sqlCon != null) this.sqlCon.close();
if (this.rstSql != null) this.rstSql.close();
if (this.stmS != null) this.stmS.close();
this.status = true;
return false;
} catch (Exception e) {
this.status = false;
return true;
}
}
/**
* 返回结果集
* @return
*/
public ResultSet getResultLists() {
return this.rstSql;
}
public static void main(String[] agrs) throws SQLException {
CommonDB commonsql = new CommonDB();
commonsql.setDriveName("sun.jdbc.odbc.JdbcOdbcDriver");
commonsql.setConnectName("jdbc:odbc:bbs");
if (commonsql.connect("", "")) {
System.out.print("connect seccessed!");
if (commonsql.query("select * from userinfo")) {
System.out.println(commonsql.getrowcount());
while (commonsql.nextrecord()) {
System.out.println(commonsql.getstring("username"));
System.out.println(commonsql.getint("age"));
}
}
commonsql.close();
} else {
System.err.println("connect failed!");
}
}
}
分享到:
相关推荐
Java通用数据库操作类是Java开发中常用的一种工具,主要用于简化对数据库的访问,它通过封装JDBC(Java Database Connectivity)接口来实现与多种数据库的交互。JDBC是Java语言连接数据库的标准,它提供了多种功能,...
### Java工具类:Java连接各个数据库方法 在Java开发中,连接不同的数据库是常见的需求之一。本文将详细介绍如何通过Java工具类实现与多种数据库的连接,包括Oracle、DB2、SQL Server、Sybase、Informix、MySQL、...
Java JDBC封装类,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。
南大通用数据库驱动的jar包内包含了所有必要的类和方法,使得Java程序能够识别并通信于南大通用数据库系统。 南大通用数据库,全称是南京大学通用数据库管理系统(GBase),是由南京大学计算机科学与技术系开发的高...
在实际应用中,这样的通用数据库访问类可能基于诸如JDBC(Java Database Connectivity)或ADO.NET等数据库访问技术。例如,JDBC提供了一套标准的API,可以连接到各种遵循JDBC规范的数据库。开发者可以创建一个实现了...
这个“java数据库操作通用类”就是这样的一个工具,它封装了多种数据库操作的方法,使得在实际开发过程中能够更便捷地进行数据的增删查改。 首先,我们来看看核心文件`Dao.java`。这个文件很可能包含了数据库连接、...
标题中的"JAVA通用查询工具类"指的是这样一类专门处理数据库查询的类,它通常包含了连接数据库、执行SQL语句、处理结果集等功能。在给定的文件中,我们有两个关键的Java源文件:SqlFactory.java和SuperSelect.java,...
总的来说,通过Java的注解和反射机制,我们可以构建出一个高度抽象且具有通用性的数据库访问接口,它能够适应各种不同的数据模型,极大地提高了代码的灵活性和可维护性。同时,理解Android应用的基本结构,如...
总的来说,这个“通用多种数据库访问组件”是一个强大且灵活的工具,能够简化多数据库环境下的开发工作。它的设计思路和实现方式是软件工程中的优秀实践,有助于提高代码复用性和可维护性。对于开发者来说,理解并...
DBUtil.java文件通常包含数据库操作的通用工具类,它封装了常见的数据库操作,如打开、关闭连接,执行SQL语句,处理结果集等。这样的设计使得代码更加简洁,可读性更强,同时也降低了出错的可能性。开发者可以借助...
JDBC 是一种“开放”的方案,它为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯 Java 语言编写完整的数据库应用程序。 JDBC 提供两种 API,分别是面向开发人员...
DBUtils在实际开发中,可以大大降低数据库操作的复杂度,提高代码的可读性和可维护性,是Java项目中常用的数据库工具之一。它的设计理念和实现方式,对于理解和学习数据库操作有很好的参考价值。
标题中的“JDBC链接Oracle数据库增删改查通用工具类”指的是一个Java编程中的实用工具类,它封装了与Oracle数据库交互的JDBC操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)这四种基本...
【基于Java的数据库通用转储工具的研究】 在现代企业信息化进程中,数据库是不可或缺的重要组成部分,企业根据业务需求可能会采用多种不同类型的数据库。为了确保数据库的安全性、提高效率、简化数据迁移过程并增强...
此外,还有一些第三方工具如SQL Workbench/J或DBeaver,它们支持多种数据库,包括Cache,可以作为更通用的可视化选项。 6. **性能优化**:在实际应用中,需要考虑性能优化,如使用连接池管理数据库连接,减少每次...
总的来说,`DBManager`是一个实用的工具类,它将JDBC的复杂性隐藏在幕后,为Java开发者提供了简单易用的数据库操作接口,提高了开发效率并降低了出错的可能性。在实际项目中,根据需求,开发者还可以扩展其功能,...
在IT行业中,数据库连接是Java应用程序中的重要环节,特别是在开发涉及数据存储和检索的应用时。...总的来说,这个通用的Java数据库连接程序为开发者提供了便捷、安全的数据库操作工具,是Java项目中的实用组件。
总之,一个通用数据库操作类是软件开发中的重要工具,它简化了数据库交互的复杂性,使得开发者可以更专注于业务逻辑。通过支持SQL和ORA,这个类适用于多种数据库环境,提高了代码的复用性和灵活性。
Java作为一种广泛使用的编程语言,提供了强大的工具和API来处理与数据库的交互,其中最重要的一项技术就是Java数据库连接(JDBC)。本文将全面讲解JDBC的相关知识,包括其原理、基本概念以及如何使用JDBC进行数据库...
这样的通用数据库操作类使得在Java项目中进行数据库操作变得简单且易于维护,通过封装常见的数据库操作,减少了重复代码,提高了代码的复用性。不过,实际使用时,还需要根据具体的数据库类型(如MySQL、Oracle、SQL...