`
services
  • 浏览: 80659 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

JAVA通用数据库访问工具类

    博客分类:
  • java
阅读更多
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通用数据库操作类是Java开发中常用的一种工具,主要用于简化对数据库的访问,它通过封装JDBC(Java Database Connectivity)接口来实现与多种数据库的交互。JDBC是Java语言连接数据库的标准,它提供了多种功能,...

    java工具类:java连接各个数据库方法.java

    ### Java工具类:Java连接各个数据库方法 在Java开发中,连接不同的数据库是常见的需求之一。本文将详细介绍如何通过Java工具类实现与多种数据库的连接,包括Oracle、DB2、SQL Server、Sybase、Informix、MySQL、...

    Java连接数据库 JDBC封装类 带使用例子

    Java JDBC封装类,带增删改查例子,支持oracle,MySql,hsqldb 等,支持事务,返回数据格式 支持二维数组,MAP格式,以及javabean对象。有利于初学者DbDemo.java为demo,Connect为jdbc封装类,可以作为项目共通类使用。

    南大通用数据库驱动 jar 包

    南大通用数据库驱动的jar包内包含了所有必要的类和方法,使得Java程序能够识别并通信于南大通用数据库系统。 南大通用数据库,全称是南京大学通用数据库管理系统(GBase),是由南京大学计算机科学与技术系开发的高...

    通用数据库访问类支持多数据库

    在实际应用中,这样的通用数据库访问类可能基于诸如JDBC(Java Database Connectivity)或ADO.NET等数据库访问技术。例如,JDBC提供了一套标准的API,可以连接到各种遵循JDBC规范的数据库。开发者可以创建一个实现了...

    java数据库操作通用类

    这个“java数据库操作通用类”就是这样的一个工具,它封装了多种数据库操作的方法,使得在实际开发过程中能够更便捷地进行数据的增删查改。 首先,我们来看看核心文件`Dao.java`。这个文件很可能包含了数据库连接、...

    JAVA通用查询工具类

    标题中的"JAVA通用查询工具类"指的是这样一类专门处理数据库查询的类,它通常包含了连接数据库、执行SQL语句、处理结果集等功能。在给定的文件中,我们有两个关键的Java源文件:SqlFactory.java和SuperSelect.java,...

    通过Java annotation以及反射机制实现不同类型通用的数据库访问接口

    总的来说,通过Java的注解和反射机制,我们可以构建出一个高度抽象且具有通用性的数据库访问接口,它能够适应各种不同的数据模型,极大地提高了代码的灵活性和可维护性。同时,理解Android应用的基本结构,如...

    通用多种数据库访问组件

    总的来说,这个“通用多种数据库访问组件”是一个强大且灵活的工具,能够简化多数据库环境下的开发工作。它的设计思路和实现方式是软件工程中的优秀实践,有助于提高代码复用性和可维护性。对于开发者来说,理解并...

    Java数据库操作类20170703

    DBUtil.java文件通常包含数据库操作的通用工具类,它封装了常见的数据库操作,如打开、关闭连接,执行SQL语句,处理结果集等。这样的设计使得代码更加简洁,可读性更强,同时也降低了出错的可能性。开发者可以借助...

    Java jdbc数据库连接池总结

    JDBC 是一种“开放”的方案,它为数据库应用开发人员、数据库前台工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以用纯 Java 语言编写完整的数据库应用程序。 JDBC 提供两种 API,分别是面向开发人员...

    DBUtils(通用的数据库工具类)

    DBUtils在实际开发中,可以大大降低数据库操作的复杂度,提高代码的可读性和可维护性,是Java项目中常用的数据库工具之一。它的设计理念和实现方式,对于理解和学习数据库操作有很好的参考价值。

    JDBC链接Oracle数据库增删改查通用工具类

    标题中的“JDBC链接Oracle数据库增删改查通用工具类”指的是一个Java编程中的实用工具类,它封装了与Oracle数据库交互的JDBC操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)这四种基本...

    基于Java的数据库通用转储工具的研究.pdf

    【基于Java的数据库通用转储工具的研究】 在现代企业信息化进程中,数据库是不可或缺的重要组成部分,企业根据业务需求可能会采用多种不同类型的数据库。为了确保数据库的安全性、提高效率、简化数据迁移过程并增强...

    java连接cache数据库说明,数据库驱动,cache可视化工具

    此外,还有一些第三方工具如SQL Workbench/J或DBeaver,它们支持多种数据库,包括Cache,可以作为更通用的可视化选项。 6. **性能优化**:在实际应用中,需要考虑性能优化,如使用连接池管理数据库连接,减少每次...

    Java 通用数据库连接类[支持存储过程 参数自动识别]

    总的来说,`DBManager`是一个实用的工具类,它将JDBC的复杂性隐藏在幕后,为Java开发者提供了简单易用的数据库操作接口,提高了开发效率并降低了出错的可能性。在实际项目中,根据需求,开发者还可以扩展其功能,...

    通用java数据库连接程序

    在IT行业中,数据库连接是Java应用程序中的重要环节,特别是在开发涉及数据存储和检索的应用时。...总的来说,这个通用的Java数据库连接程序为开发者提供了便捷、安全的数据库操作工具,是Java项目中的实用组件。

    一个通用数据库操作类

    总之,一个通用数据库操作类是软件开发中的重要工具,它简化了数据库交互的复杂性,使得开发者可以更专注于业务逻辑。通过支持SQL和ORA,这个类适用于多种数据库环境,提高了代码的复用性和灵活性。

    java数据库连接详解

    Java作为一种广泛使用的编程语言,提供了强大的工具和API来处理与数据库的交互,其中最重要的一项技术就是Java数据库连接(JDBC)。本文将全面讲解JDBC的相关知识,包括其原理、基本概念以及如何使用JDBC进行数据库...

    Java数据库通用操作类.doc

    这样的通用数据库操作类使得在Java项目中进行数据库操作变得简单且易于维护,通过封装常见的数据库操作,减少了重复代码,提高了代码的复用性。不过,实际使用时,还需要根据具体的数据库类型(如MySQL、Oracle、SQL...

Global site tag (gtag.js) - Google Analytics