数据库操作通用类

DataBase.java

说明:

1. 此类包含对数据库的查询,删除,更新操作.

    2. 可以实现对大文本对象的增删改.

    3. 利用自建的数据库连接池类, 得到数据库连接.

    4. 可以利用Tomcat 自带的连接池,
得到数据库连接

变量:

   
1. 数据库连接

变量名     : conn

应用范围   : protect

变量类型   : Connection 数据库连接

初始值     : null

是否Static :  否

   
2. 声明语句

变量名     : stm

应用范围   : protect

变量类型   : Statement

初始值     : null

是否Static : 否

   
3. 预声明语句

变量名     : pstm

应用范围   : protect

变量类型   : PreparedStatement

初始值     : null

是否Static : 否

   
4. 结果集

变量名     : rs

应用范围   : protect

变量类型   : ResultSet

初始值     : null

是否Static : 否

   
5. 标识是否取得连接

变量名     : connected

应用范围   : protect

变量类型   : boolean

初始值     : false

是否Static : 否

方法简介
























































































































































































































































































































序号

方法名

参数

返回值

功能

1

DataBase Void 构造函数

2

showConnNum Void 在控件台显示当前连接池情况,连接数,总连接数等信息

3

getConnPool Void

* 取得Tomcat连接池, 在server.xml
中配置的连接池

* 从连接池中取得连接

4

getMyConnPool Void

* 创建连接池, 并取得连接

* 从由连接池类DBConnectionManager
创建的连接池

5

releaseMyConnPool Boolean 释放我的连接池, 即由DBConnectionManager
创建的连接池

6

createConn

String drv

String url

String usr

String pwd

Void

* 生成Oracle SQLServer 等的连接

* 不使用连接池

7

createConn

String drv

String url

Void 生成Access连接

8

realaseConn Void 释放的是当前类中, 通过各种方法取得的连接

9

QuerySql String sql ResultSet 执行查询sql 语句, 并返回执行结果

10

ExceuteSql String sql Int 执行删除sql 语句, 自动提交,
成功返回0,失败返回错误代码

11

getOnePage

String sql

int page

int records

Vector

执行查询sql 语句

将页号为page , 每页显示records条记录的结果集,以键/值对应的形式存入Hashtable
并存入Vector

12

getOnePage1

String sql

int page

int records

Boolean b

Vector

执行查询sql 语句

将页号为page , 每页显示records条记录的结果集,以键/值对应的形式存入Hashtable
并存入Vector

13

getOnePage

String sql

int page

int records boolean useDic

Vector

执行查询sql 语句

将页号为page , 每页显示records条记录的结果集,以键/值对应的形式存入Hashtable
并存入Vector

如果useDic 为true , 从配置表中取每面显示记录数

14

getData String sql Vector

执行查询sql 语句

将结果以 列/值对应的存入Hashtabl中, 存入Vector

15

QueryClob

String table String wherestr

String clobfield

String

查询 Clob型字段的值

将Clob结果转换为String , 并返回String

16

UpdateClob

String table String wherestr

String clobfield

String clobvalue

Int

将clobvalue 转换为clob

用转换后的clob 更新clobfield字段

成功返回0 , 失败返回错误代码

17

QueryBlob String table String wherestr String
blobfield
String

查询 Blob 型字段的值

将Blob 结果转换为String , 并返回String

18

UpdateBlob

String table String wherestr

String blobfield String blobvalue

Int

将blobvalue 转换为blob

用转换后的blob 更新blobfield字段

成功返回0 , 失败返回错误代码

19

QueryBLOB_JNDI String table String wherestr String
blobfield
String 查询blob 型字段, 返回String

20

UpdateBLOB_JNDI String table String wherestr String
blobfield String blobvalue
Int 更新blob 型辽段

21

clobInsert

String sql String table String wherestr

String clobfield String infile

Int

往数据库中插入一个新的CLOB对象

sql 是一条插入语句

22

clobModify

String table String wherestr String clobfield

String infile

int 修改CLOB对象(是在原CLOB对象基础上进行覆盖式的修改)

23

clobReplace

String table String wherestr String clobfield

String infile

Int 替换CLOB对象(将原CLOB对象清除,换成一个全新的CLOB对象)

24

blobInsert

String sql String table String wherestr

String blobfield

String infile

int 向数据库中插入一个新的BLOB对象

25

blobModify

String table String wherestr String blobfield

String infile

int 修改BLOB对象(是在原BLOB对象基础上进行覆盖式的修改)

26

blobReplace

String table String wherestr String blobfield

String infile

int 替换BLOB对象(将原BLOB对象清除,换成一个全新的CLOB对象)

27

getDataBaseInfo   Hashtable 数据库信息(类型,版本,驱动等)
使用DatabaseMetaData类

28

getTableList   Vector 使用DatabaseMetaData类的getTables

29

getTableStruct String table Vector 数据表的结构(字段名,类型,是否为空,精度等)
DatabaseMetaData类

30

getResultSetData ResultSet rs Vector 列/值 存入Hashtable, 将Hashtable
存入Vector中

31

prepareStatement String sql Void 用sql 创建表达, 为类变量pstm 赋值

32

executeQuery void 执行查询, 执行变量pstm中设置的表达,
返回结果集赋给类变量rs

33

next boolean 调用rs.next(), 转向下一条记录

34

getObject String field String sqlType String 取得数据并根据数据类型转化为字符串

35

setObject

int index

String value

String sqlType

Void

根据数据类型保存到数据库

根据将参数sqlType 将value 转换为相应的类型

调用 psmt.setObject(index, 转换后的value)

36

executeUpdate Void 调用 psmt.executeUpdate() ,
执行数据更新

37

closePstm Void 调用 psmt.close(), 关闭表达对象

38

closeRs Void 调用 rs.close(), 关闭结果集

39

setBinaryStream int index InputStream is int
t
Void 调用 pstm.setBinaryStream(index, is,
t);

40

setAsciiStream int index InputStream is int
t
Void 调用 pstm.setBinaryStream(index, is,
t);

41

getAutoCommit   boolean 调用conn.getAutoCommit();
判断是否自动提交

42

closeAutoCommit   Void 调用 conn.setAutoCommit(false);

43

commit   Void 调用 conn.commit()

44

Rollback   Void 调用 conn.rollback()

45

openAutoCommit   Void 调用 conn.setAutoCommit(true)

46

createStatement   Void 调用 stm =
conn.createStatement();

47

clearBatch   void 调用 stm.clearBatch();

48

addBatch   Void 调用 stm.addBatch(sql);

49

executeBatch   Int[] 调用 stm.executeBatch();

50

closeStm   Void 调用 stm.close()

方法详解

package oa.main;

import java.util.*;

import java.sql.*;
import java.io.*;

import javax.naming.*;

/**
 *
此文件为数据库的基本操作处理类
 * 
 * @author zhoumeng
 * @version
1.0
 */
public
class DataBase extends
Object
{
    Connection        conn     
= null; // 连接

    Statement          stm       = null; //

    PreparedStatement pstm     
= null;
//
 
    ResultSet         rs              
 = null; //
结果集

    boolean           connected = false;//
是否连接

    /**
构造函数 */
    public DataBase()
   
{
    }


 
/**
     *  在控制台显示连接池情况
    

     *
*/

    public void
showConnNUM()
   
{
       
/**---------------------------------------------------------------------------------------------------------------**/
       
// 字符操作类
        DealString ds = new
DealString();
       
**---------------------------------------------------------------------------------------------------------------**/

        //
连接池信息
        int curnum       
= DBConnectionManager
       
     .getCurConns(Configuration.ConnectionPoolName);  
//
现有连接数 
        int sumnum     
= DBConnectionManager
       
     .getSumConns(Configuration.ConnectionPoolName); 
//
连接总数
        int maxnum     
= DBConnectionManager
       
     .getMaxConns(Configuration.ConnectionPoolName);  
//
池中连接
        int isNullPool  = DBConnectionManager
       
     .getNullPool(Configuration.ConnectionPoolName);     
 //
池中空连接数
        int isOracleErr = DBConnectionManager
       
     .getOracleErr(Configuration.ConnectionPoolName);   
//
错误连接数
       
**---------------------------------------------------------------------------------------------------------------**/       

        int jvmcount    =
ParentBean.count;
        float jvm1        =
(float) Runtime.getRuntime().totalMemory()
/ 1024 / 1024;
        float jvm2       
= (float) Runtime.getRuntime().maxMemory()
/ 1024 / 1024;
       
**---------------------------------------------------------------------------------------------------------------**/

        System.out.print("/r" 
+ ds.getDateTime().substring(11,
19)            

               
"程序中调用连接累计数> "   + ds.toLengthStrRight(sumnum  + "",
10)     

               
"当前非空闲的连接总数> "   + ds.toLengthStrRight(curnum    +
"", 10)     

               
"连接数(空闲+非空闲)  > "    + ds.toLengthStrRight(maxnum   + "",
10)     

               
"超出连接数限制的请求> "   + ds.toLengthStrRight(isNullPool+ "",
10)     

               
"DB未响应> "   + ds.toLengthStrRight(isOracleErr +
"", 10)

               
"JVM垃圾回收> "+ jvmcount +
"  ");
    }


   
/** 
     * 
     *
取得Tomcat连接池, 在server.xml 中配置的连接池
     *
从连接池中取得连接
     * */
    public
void getConnPool()
   
{
       
try {
           
/**---------------------------------------------------------------------------------------------------------------**/

            if (connected) //
已经连接
           
{
                throw new SQLException("数据库已连接,无须重连!");
           
}
           
/**---------------------------------------------------------------------------------------------------------------**/

            //
上下文环境
            Context initCtx = new InitialContext();
            Context ctx      
= (Context) initCtx.lookup("java:comp/env");
           
/**---------------------------------------------------------------------------------------------------------------**/

            /** 获取连接池对象
*/
            Object obj =
(Object) ctx.lookup("jdbc/OracleDB");
           
/**---------------------------------------------------------------------------------------------------------------**/

            /** 类型转换
*/
            javax.sql.DataSource ds =
(javax.sql.DataSource) obj;
            /**---------------------------------------------------------------------------------------------------------------**/

            //
从连接池中得到连接
            conn = ds.getConnection();
           
/**---------------------------------------------------------------------------------------------------------------**/

            // 标识已得到连接池,
并得到连接
            connected = true;
           
/**---------------------------------------------------------------------------------------------------------------**/

           
//
控件台输出连接情况
            showConnNUM();
       
} catch (NamingException e)
{
            System.out.println("从数据池取得数据库连接时出错;/r/n错误为:"
+ e);
       
} catch (SQLException e)
{
            System.out.println("从数据池取得数据库连接时出错;/r/n错误为:"
+ e);
       
}
    }


    /** 
     * 创建连接池,
并取得连接
     * 从由连接池类DBConnectionManager
创建的连接池 
     * 
     *
*/
    public
boolean getMyConnPool()
   
{
       
/**---------------------------------------------------------------------------------------------------------------**/

        //
创建连接池实例, 并取得连接
        conn = Configuration.connMgr
               
.getConnection(Configuration.ConnectionPoolName);
       
/**---------------------------------------------------------------------------------------------------------------**/

        //
显示连接池情况
        showConnNUM();
       
/**---------------------------------------------------------------------------------------------------------------**/

        // 判断方法是否执行成功, 连接为空返回false ,
连接不为空返回true
        if (conn == null)
       
{
            return false;
       
} else {
            return true;
       
}
    }


   
/** 
     * 释放我的连接池中的连接

     *
通过连接池管理类DBConnectionManager 生成的连接
     *
*/
    public
boolean releaseMyConnPool()
   
{
       
/**---------------------------------------------------------------------------------------------------------------**/
        //
判断是否已连接
        boolean b;
        if (conn != null)
       
{
            b = true;
       
} else {
            b = false;
       
}
       
/**---------------------------------------------------------------------------------------------------------------**/

        //
调用DBConnectionManager 中的freeConnection 方法,
释放指定连接
        //
池中的指定连接
        Configuration.connMgr
       
 .freeConnection(Configuration.ConnectionPoolName, conn);
       
/**---------------------------------------------------------------------------------------------------------------**/       

        //
连接置为空
        conn = null;
       
/**---------------------------------------------------------------------------------------------------------------**/

        //
控件台显示连接池情况
        showConnNUM();
        
        return b;
   
}


    /** 
     * 生成Oracle
SQLServer 等的连接 
     *
不使用连接池
     * */
    public void createConn(String drv, String url, String usr, String pwd)
   
{

         try{
            
/**---------------------------------------------------------------------------------------------------------------**/

             if (connected)
            
{
             
   throw new
SQLException("数据库已连接,无须重连!");
            
}
            
/**---------------------------------------------------------------------------------------------------------------**/

             // JDBC 或 JDBC-ODBC 连接,
依据url而定
           
 Class.forName(drv).newInstance();
           
 conn = DriverManager.getConnection(url, usr, pwd);
             /**---------------------------------------------------------------------------------------------------------------**/
             connected = true;

             /**---------------------------------------------------------------------------------------------------------------**/

             //
控件台显示连接池情况 
           
 showConnNUM();
            
        
} catch (ClassNotFoundException ec){
            System.out.println("从自身建立数据库连接时出错;/r/n错误为:"
+ ec);
        
} catch (SQLException e){

            System.out.println("从自身建立数据库连接时出错;/r/n错误为:"
+ e);
       
} catch (Exception et){
            System.out.println("从自身建立数据库连接时出错;/r/n错误为:"
+ et);
       
}
    }


    /** 
     *
生成Access连接 
     *
*/
    public
void createConn(String drv, String url)
   
{
       
try
{
           
/**---------------------------------------------------------------------------------------------------------------**/

            if (connected)
           
{
                throw new
Exception("数据库已连接,无须重连!");
           
}
            Class.forName(drv).newInstance();
            conn = DriverManager.getConnection(url);
           
/**---------------------------------------------------------------------------------------------------------------**/

            connected = true;
           
/**---------------------------------------------------------------------------------------------------------------**/

            /*控制台显示连接池情况
*/
            showConnNUM();
       
} catch (ClassNotFoundException ec)
{
            System.out.println("从自身建立数据库连接时出错;/r/n错误为:"
+ ec);
       
} catch (SQLException e){
            System.out.println("从自身建立数据库连接时出错;/r/n错误为:"
+ e);
       
} catch (Exception et){
            System.out.println("从自身建立数据库连接时出错;/r/n错误为:"
+ et);
       
}
    }


    /** 
     *
释放数据库连接 
     *
*/
    public
void releaseConn()
   
{
        try{
           
/**---------------------------------------------------------------------------------------------------------------**/

            if (!connected)
           
{
                throw new
SQLException("数据库未连接!");
           
}
            if (conn != null)
           
{
               
/***--------------------------------------------------------------------------------------------------------***/
                //
关闭连接
                conn.close();
               
/***--------------------------------------------------------------------------------------------------------***/
                //
标识未连接
                connected = false;
               
/***--------------------------------------------------------------------------------------------------------***/
                //
控件台显示连接池情况
                showConnNUM();
           
}
        } catch (SQLException e){
            System.out.println("关闭数据库连接时出错;/r/n错误为:"
+ e);
       
}
    }



   
/** 
     * 查询记录 

     *
@param sql String 查询SQL语句

    
*

     *
@return ResultSet 返回查询结果集
     *
*/
    public
ResultSet QuerySQL(String sql)
   
{
       
/**---------------------------------------------------------------------------------------------------------------**/
       
// 定义结果集
        ResultSet rs = null;
       
/**---------------------------------------------------------------------------------------------------------------**/
        try{
           
/***---------------------------------------------------------------------------------------------------------***/
            // 执行SQL 语句,
返回结果集
            pstm = conn.prepareStatement(sql);
            rs   = pstm.executeQuery();
       
} catch (SQLException sqle)
{
            System.out.println("执行DataBase::QuerySQL(String)调用SQL语句
" + sql
                   
+ " 时出错;/r/n错误为:" + sqle);
            if (pstm != null)

           
{
                try{
                    pstm.close();
               
} catch (Exception e){
                    System.out
                           
.println("执行DataBase::QuerySQL(String)试图关闭错误的声明时出错;/r/n错误为:"
                                   
+ e);
               
}

           
}
       
}
        return rs;
   
}


    /** 
     *
执行增删改的语句
     *
*/
    public int ExecuteSQL(String sql)
   
{
        try{
           
/**---------------------------------------------------------------------------------------------------------------**/

            pstm = conn.prepareStatement(sql);
            pstm.executeUpdate();
           
/**---------------------------------------------------------------------------------------------------------------**/

            conn.commit();
       
} catch (SQLException sqle){
           
//System.out.println("执行DataBase::ExecuteSQL(String)调用SQL语句
"+sql+"
            //
时出错;/r/n错误为:"+sqle);
            return sqle.getErrorCode();
       
} finally{
            try{
                pstm.close();
           
} catch (SQLException sqle){
                System.out.println("执行DataBase::ExecuteSQL(String)调用SQL语句
"
                       
+ sql + " 时出错;/r/n错误为:"
+ sqle);
           
}
       
}
        return 0;
   
}


   
/*

     *
在vector 中 第一项为总页数 第项...个为Hashtable存放列/值
     * 
@param1 sql String SQL 语句
     *  @param2 page int
页号
     *  @param3 records int
一页显示条数
     * 
     * 
@return vector 指定页显示数据矩阵
    
* */
    public Vector getOnePage(String sql, int page, int records)
   
{
        return getOnePage(sql, page, records, true);
   
}


/*
     *  在vector 中 第一项为记录数,第二项总页数
第三项后为Hashtable存放列/值

*
 @param1 sql String SQL 语句
     *  @param2 page
int 页号
     *  @param3 records int
一页显示条数
     *  @param4 boolean

     * 
     * 
@return vector 指定页显示数据矩阵
     *
*/
    public
Vector getOnePage(String sql, int page, int records, boolean b)
   
{

        Vector vect = new Vector();
        try{
            pstm = conn.prepareStatement(sql);
            rs = pstm.executeQuery();
           
/**---------------------------------------------------------------------------------------------------------------**/

            //
记录总数
            int rows =
0;
        
 
            while (rs.next())
           
{
                rows++;
           
}
           
/**---------------------------------------------------------------------------------------------------------------**/

            // 根据每页显示记录数,
得到总显示页数
            int sum = rows / records;
            if (rows % records != 0 || rows ==
0)
           
{
                sum++;
           
}
           
/**---------------------------------------------------------------------------------------------------------------**/

            vect.add("" + rows); //
总记录条数
            vect.add("" + sum);  //
总页数
           
/**---------------------------------------------------------------------------------------------------------------**/

            int temp = rows; //
记录总记录数
           
/**---------------------------------------------------------------------------------------------------------------**/

            // 移动数据指针,
到当前页所要显示的记录位置
            pstm.close();
           
//rs.close();
           
/***------------------------------------------------------------------------------------------------------------***/
            pstm = conn.prepareStatement(sql);
            rs = pstm.executeQuery();
           
/***------------------------------------------------------------------------------------------------------------***/

            //
把指针定位到当前页第一条记录位置
            rows = (page -
1) * records; 
            rows++ ; // 当前页, 所要显示的记录中,
首条记录的上一条记录的位置

while (rows >
0)
           
{
                rs.next(); //
数据指针,
移到需显示当前页记录的位置
                rows--;
           
}
           
/**---------------------------------------------------------------------------------------------------------------**/

//
字符操作类
            DealString ds = new DealString();
           
/**---------------------------------------------------------------------------------------------------------------**/

//查询当前页
            int j =
0; // 记录本页显示的记录数, 递增

            do{
               
/***---------------------------------------------------------------------------------------------------------***/

                // 如遇到以下情况, 退出循环
               
// 结果集为空 ,
已显示记录数等于每页显示的记录数 
               
// 总记录数为0 ,
需要显示的页号大于总页数
                if (rs == null || j == records || temp ==
0 || page > sum)
               
{
                    break;
               
}
               
/***---------------------------------------------------------------------------------------------------------***/
                j++; //
显示的记录条数, 如果等于设定的每页显示记录数,
将退出本循环
               
/***---------------------------------------------------------------------------------------------------------***/
                //
列数
                ResultSetMetaData rsmd = rs.getMetaData();
                int cols = rsmd.getColumnCount();
               
/***---------------------------------------------------------------------------------------------------------***/
                Hashtable hash = new Hashtable();
                for (int i = 1; i <= cols; i++)
               
{
                    //
列名
                    String field = ds.toString(rsmd.getColumnName(i));
                    //
列名对应的值
                    String value = ds.toString(rs.getString(i));
                    //
列名与列值存入哈希表
                    hash.put(field, value);
               
}
               
/***---------------------------------------------------------------------------------------------------------***/
                //
哈希表存入Vector
                vect.add(hash);
           
} while (rs.next());
       
} catch (SQLException sqle){
            System.out.println("执行SQL语句 " + sql + " 分页至第 " + page
                   
+ " 页时出错;错误为:" + sqle);
       
} finally{
            closeRs();
            closePstm();
       
}
        return vect;
   
}


   
/*
     *  @param1 sql String SQL
语句
     *  @param2 page int
页号
     *  @param3 records int
一页显示条数
     *  @param4 useDic boolean
是否使用配置表中设定的每页显示记录数
     *  @return vector
指定页显示数据矩阵
     *   在vector 中 第一项为总页数
第项...个为Hashtable存放列/值
    

     * 
分页是返回一页的数据矩阵
    
*/
    public Vector getOnePage1(String sql, int page, int records, boolean useDic)
   
{
        /**---------------------------------------------------------------------------------------------------------------**/

        Vector vect = new
Vector();
       
/**---------------------------------------------------------------------------------------------------------------**/

        int zdrecords =
records;
       
/**---------------------------------------------------------------------------------------------------------------**/

       
try{
            if (useDic)
           
{
               
/***------------------------------------------------------------------------------------------------------***/
                //
从配置表中读取每页显示记录数
                String strsql =
"select XMMC from CODE_ZDB where
trim(ZDMC)=‘每页显示记录条数‘";
                pstm = conn.prepareStatement(strsql);
                rs = pstm.executeQuery();
               
/***------------------------------------------------------------------------------------------------------***/
                if (rs.next())
               
{
                    zdrecords = Integer.parseInt(rs.getString("XMMC"));
               
}
               
/***------------------------------------------------------------------------------------------------------***/
                rs.close();
                pstm.close();
           
}
            
           
//查询总页数
           
// pstm.clearBatch();
            pstm = conn.prepareStatement(sql,
                    ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);
            rs = pstm.executeQuery();
           
/***---------------------------------------------------------------------------------------------------------***/

//
总记录数

            int rows =
0;
            while (rs.next())
           
{
                rows++;
           
}
            int sum = rows / zdrecords;
            if (rows % zdrecords != 0 || rows ==
0)
           
{
                sum++;   
           
}
           
/***---------------------------------------------------------------------------------------------------------***/

           
vect.add("" + sum); // 添加总页数到Vector

           
/***---------------------------------------------------------------------------------------------------------***/

            rs.close();
            pstm.close();
           
/***---------------------------------------------------------------------------------------------------------***/
           
//  得到结果集,
以可移动指针的模式
           
// pstm.clearBatch();
            pstm = conn.prepareStatement(sql,
                    ResultSet.TYPE_SCROLL_INSENSITIVE,
                    ResultSet.CONCUR_UPDATABLE);
            rs = pstm.executeQuery();

           
// 计算显示页的首记录的位置
            rows = (page -
1) * zdrecords;
           
/***---------------------------------------------------------------------------------------------------------***/

//
移动指针位置到首记录

            rs.absolute(rows +
1);
            rs.previous();
           
/***---------------------------------------------------------------------------------------------------------***/

            DealString ds = new DealString();
           
/***---------------------------------------------------------------------------------------------------------***/

           
//
查询当前页
            int j =
0;
            while (rs.next())
           
{
               
/****---------------------------------------------------------------------------------------------------****/
                if (j == zdrecords)
               
{
                    break;
               
}
                j++; // 记录当前页显示的记录数, 此值递增, 如果等于每页显示的记录数时,
退出
               
/****---------------------------------------------------------------------------------------------------****/
                ResultSetMetaData rsmd = rs.getMetaData();
                int cols = rsmd.getColumnCount();
               
/****---------------------------------------------------------------------------------------------------****/
                Hashtable hash = new Hashtable();
                for (int i = 1; i <= cols; i++)
               
{
                    String field   = ds.toString(rsmd.getColumnName(i));
                    String value = ds.toString(rs.getString(i));
                    hash.put(field, value);
               
}
               
/****---------------------------------------------------------------------------------------------------****/
                vect.add(hash);
           
}
        } catch (SQLException sqle){
            System.out.println("DataBase::getOnePage(String,int,int)执行SQL语句
"
                   
+ sql + " 分页至第 "
+ page + " 页时出错;错误为:"
+ sqle);
       
} finally{
            if (rs != null)
           
{
                try{
                    rs.close();
               
} catch (SQLException e){
                    System.out
                           
.println("DataBase::getOnePage(String,int,int)调用SQL语句
"
                                   
+ sql + " 时出错;/r/n错误为:"
+ e);
               
}
           
}
            if (pstm != null)
           
{
                try{
                    pstm.close();
               
} catch (SQLException e){
                    System.out
                           
.println("DataBase::getOnePage(String,int,int)调用SQL语句
"
                                   
+ sql + " 时出错;/r/n错误为:"
+ e);
               
}
           
}
       
}
        return vect;
   
}


/*
     *  @param1 sql String
SQL语句
     *  
    
*  @return Vector 存储对象为Hashtabl,
语句结果集对应的矩阵 
     * 
    
*  返回SQL 语句执行后所得结果集, 存储为Hashtable 形式的vector 对象
    
* */
    public Vector getData(String sql)
   
{
        Vector vect = new Vector();
        try{
            /**---------------------------------------------------------------------------------------------------------------**/

pstm = conn.prepareStatement(sql);
            rs   = pstm.executeQuery();
            /**---------------------------------------------------------------------------------------------------------------**/

DealString ds = new DealString();
            /**---------------------------------------------------------------------------------------------------------------**/

ResultSetMetaData rsmd =
rs.getMetaData();
            int cols = rsmd.getColumnCount();
            /**---------------------------------------------------------------------------------------------------------------**/

while (rs.next())
           
{
                Hashtable hash = new Hashtable();
                for (int i = 1; i <= cols; i++)
               
{
                    String field  
= ds.toString(rsmd.getColumnName(i));
                    String value = ds.toString(rs.getString(i));
                    hash.put(field, value);
               
}
               
/***--------------------------------------------------------------------------------------------------------***/
                vect.add(hash);
               
/***--------------------------------------------------------------------------------------------------------***/
           
}
        } catch (SQLException sqle){
            System.out.println("执行DataBase::getData(String)执行SQL语句
" +
sql
                   
+ " 时出错;错误为:" + sqle);
       
} finally{
            if (rs != null)
           
{
                try{
                    rs.close();
               
} catch (SQLException e){
                    System.out
                           
.println("执行DataBase::getData(String)试图释放rs时出错;/r/n错误为:"
                                   
+ e);
               
}
           
}
            if (pstm != null)
           
{
                try{
                    pstm.close();
               
} catch (SQLException e){
                    System.out
                           
.println("执行DataBase::getData(String)试图释放pstm时出错;/r/n错误为:"
                                   
+ e);
               
}
           
}
       
}
        return vect;
    }


   
/** 
     *
查询BLOB类型值 
     * 
    
* @param1 table String 表名
     * @param2 wherestr String
条件
     * @param3 blobfield String
blob类型字段
     * 
     *
@return String blob转换成string 返回
     *
*/
    public
String QueryBLOB(String table, String wherestr, String blobfield)
   
{
        String out =
"";
        try{
            String sqlCommand =
"select " + blobfield + "
from " + table;
            if (!wherestr.equals(""))
           
{
                sqlCommand = sqlCommand +
" where " + wherestr;
           
}
            pstm = conn.prepareStatement(sqlCommand);
            rs = pstm.executeQuery();
            if (rs.next())
           
{
                oracle.sql.BLOB blob =
(oracle.sql.BLOB) rs.getBlob(blobfield);
                if (blob != null)
               
{
                    InputStream is = blob.getBinaryStream();
                    InputStreamReader isw = new InputStreamReader(is);
                    BufferedReader br = new BufferedReader(isw);
                    String s = br.readLine();
                    while (s != null)
                   
{
                        out += s;
                        s = br.readLine();
                   
}
               
}
           
}
            out = (new DealString()).Replace(out, "/"",
"/"/"");
        } catch (SQLException sqle)
{
            System.out.println("调用MyDataBase.QueryBLOB()函数错误:/r/n"
+ sqle);
       
} catch (IOException iosql){
            System.out.println("调用MyDataBase.QueryBLOB()函数错误:/r/n"
+ iosql);
       
} finally{
            if (rs != null)
           
{
                try{
                    rs.close();
               
} catch (SQLException e){
                    System.out.println("试图释放rs时出错;/r/n错误为:"
+ e);
               
}
           
}
            if (pstm != null)
           
{
                try{
                    pstm.close();
               
} catch (SQLException e){
                    System.out.println("试图释放pstm时出错;/r/n错误为:"
+ e);
               
}
           
}
       
}
        return out;
   
}


   
/** 
     *
修改BLOB类型值 
     * @param1 table String
表名
     * @param2 wherestr String
条件
     * @param3 blobfield String blob
字段名
     * @param4 blobvalue String string形式的blob

     * 
     * @return int
成功返回0, 失败返回错误代码
     *
*/
    public int UpdateBLOB(String table, String wherestr, String blobfield, String blobvalue)
   
{
        try{
           
/**---------------------------------------------------------------------------------------------------------------**/

            /* 设定不自动提交
*/
            boolean defaultCommit = conn.getAutoCommit();
            conn.setAutoCommit(false);
           
/**---------------------------------------------------------------------------------------------------------------**/

            /* 清空原BLOB对象
*/
            String sqlCommand =
"UPDATE " + table +
" set " + blobfield +
"=EMPTY_BLOB()";
            if (!wherestr.equals(""))
           
{
                sqlCommand += " where " + wherestr;
           
}
            pstm = conn.prepareStatement(sqlCommand);
            pstm.executeUpdate();
           
/**---------------------------------------------------------------------------------------------------------------**/

            /* 查询BLOB对象并锁定
*/
            sqlCommand = "select " + blobfield + " from " + table;
            if (!wherestr.equals(""))
           
{
                sqlCommand += " where " + wherestr;
           
}
            sqlCommand += " for
update";
            pstm.clearBatch();
            pstm.addBatch(sqlCommand);
            rs = pstm.executeQuery();
            
            while (rs.next())
           
{
               
/***--------------------------------------------------------------------------------------------------------***/
                /* 获取此BLOB对象
*/
                oracle.sql.BLOB blob =
(oracle.sql.BLOB) rs.getBlob(blobfield);
                BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream());
                byte b[] = blobvalue.getBytes();
                out.write(b,  0,  b.length);
           
}
           
/**-----------------------------------------------------------**/
            /* 正式提交
*/
            conn.commit();
            conn.setAutoCommit(defaultCommit);
       
} catch (SQLException sqle){
            System.out.println("调用MyDataBase.UpdateBLOB()函数错误:/r/n"
+ sqle);
            return sqle.getErrorCode();
       
} catch (Exception e){
            System.out.println("调用MyDataBase.UpdateBLOB()出错:"
+ e);
       
} finally{
            if (rs != null)
           
{
                try{
                    rs.close();
               
} catch (SQLException e){
                    System.out
                           
.println("调用MyDataBase.UpdateBLOB()试图释放rs时出错;/r/n错误为:"
                                   
+ e);
               
}
           
}
            if (pstm != null)
           
{
                try{
                    pstm.close();
               
} catch (SQLException e){
                    System.out
                           
.println("调用MyDataBase.UpdateBLOB()试图释放pstm时出错;/r/n错误为:"
                                   
+ e);
               
}
           
}
       
}
        return 0;
   
}
   


   
/** 
     *
修改BLOB对象(是在原BLOB对象基础上进行覆盖式的修改) 
     *
*/
    public int blobModify(String table, String wherestr, String blobfield, String infile)
   
{
        try{
            /* 设定不自动提交
*/
            boolean defaultCommit = conn.getAutoCommit();
            conn.setAutoCommit(false);

            /* 查询此BLOB对象并锁定
*/
            String sqlCommand =
"select " + blobfield + "
from " + table;
            if (!wherestr.equals(""))
           
{
                sqlCommand += " where " + wherestr;
           
}
            sqlCommand += " for update
";
            pstm = conn.prepareStatement(sqlCommand);
            rs = pstm.executeQuery();

            while (rs.next())
           
{
                /* 取出此BLOB对象
*/
                oracle.sql.BLOB blob =
(oracle.sql.BLOB) rs.getBlob(blobfield);

                /* 进行覆盖式修改
*/
                BufferedInputStream in = new BufferedInputStream(
                        new FileInputStream(infile));
                BufferedOutputStream out = new BufferedOutputStream(blob
                       
.getBinaryOutputStream());

                int c;
                while ((c = in.read()) !=
-1)
               
{
                    out.write(c);
               
}

                in.close();
                out.close();
           
}
            rs.close();
            pstm.close();

            /* 正式提交
*/
            conn.commit();

            /* 恢复原提交状态
*/
            conn.setAutoCommit(defaultCommit);
       
} catch (SQLException sqle){
            System.out.println("调用DataBase.blobModify()函数错误:/r/n"
+ sqle);
            return sqle.getErrorCode();
       
} catch (IOException iosql){
            System.out.println("调用DataBase.blobModify()函数错误:/r/n"
+ iosql);
       
}
        return 0;
   
}


   
/** 
     *
替换BLOB对象(将原BLOB对象清除,换成一个全新的BLOB对象) 
     *
*/
    public int blobReplace(String table, String wherestr, String blobfield, String infile)
   
{
        int out =
0;
        try{
            /* 设定不自动提交
*/
            boolean defaultCommit = conn.getAutoCommit();
            conn.setAutoCommit(false);

            /* 清空原BLOB对象
*/
            String sqlCommand =
"update " + table + " set
" + blobfield +
"=EMPTY_BLOB()";
            if (!sqlCommand.equals(""))
           
{
                sqlCommand += " where " + wherestr;
           
}
            pstm = conn.prepareStatement(sqlCommand);
            pstm.executeUpdate();
            pstm.close();

            /* 正式提交
*/
            conn.commit();

            /* 恢复原提交状态
*/
            conn.setAutoCommit(defaultCommit);

//
执行修改

            out = blobModify(table, wherestr, blobfield, infile);
       
} catch (SQLException sqle)
{
            System.out.println("调用DataBase.blobReplace()函数错误:/r/n"
+ sqle);
            return sqle.getErrorCode();
       
}
        return out;
   
}


   
/** 
     * 数据库信息 
    
* */
    public Hashtable getDataBaseInfo()
   
{
        Hashtable hash = new Hashtable();
        try{
            DatabaseMetaData dmd = conn.getMetaData();


            hash.put("1", dmd.getCatalogSeparator());
            hash.put("2", dmd.getCatalogTerm());
            hash.put("数据库类型名称", dmd.getDatabaseProductName());
            hash.put("数据库版本", dmd.getDatabaseProductVersion());
            hash.put("5", dmd.getDefaultTransactionIsolation() +
"");
            hash.put("驱动版本(最大)", dmd.getDriverMajorVersion() +
"");
            hash.put("驱动版本(最小)", dmd.getDriverMinorVersion() +
"");
            hash.put("驱动名", dmd.getDriverName());
            hash.put("驱动版本", dmd.getDriverVersion());
            hash.put("10", dmd.getExtraNameCharacters());
            hash.put("11", dmd.getIdentifierQuoteString());
            hash.put("12", dmd.getMaxBinaryLiteralLength() +
"");
            hash.put("最大行限定", dmd.getMaxRowSize() +
"");
            hash.put("方案", dmd.getSchemaTerm());
            hash.put("日期函数", dmd.getTimeDateFunctions());
            hash.put("连接地址", dmd.getURL());
            hash.put("用户名", dmd.getUserName());
       
} catch (SQLException sqle){
            System.out.println("调用DataBase.getDataBaseInfo()函数错误:/r/n"
+ sqle);
       
} catch (AbstractMethodError e){
            System.out.println("调用DataBase.getDataBaseInfo()函数错误:/r/n"
+ e);
       
}
        return hash;
   
}


   
/** 
     * 数据表列表 
    
* */
    public Vector getTableList()
   
{
        Vector vect = new Vector();
        try{
            if (ParentBean.DBType.equals("Access"))
           
{
               
//ExecuteSQL("create table tab(name
char)");
               
//ExecuteSQL("insert into tab(name)
select name from
MsysObjects");
                rs = QuerySQL("select
name as TABLE_NAME from
tab");
               
//rs = QuerySQL("SELECT
MSysObjects.Name as TABLE_NAME

                //                              
FROM 
MsysObjects WHERE
(Left$([Name],1)<>‘~‘)

                //                              
AND (Left$([Name],4) <> ‘Msys‘)

               
//                             
 AND (MSysObjects.Type)=1

                //                              
ORDER
BY MSysObjects.Name");
           
}else{
                DatabaseMetaData dmd = conn.getMetaData();
                String[] types = new String[1];
                types[0] =
"TABLE";
               
//types[1] =
"VIEW"
                rs = dmd.getTables(null, ParentBean.DBName.toUpperCase(), "%", types);
           
}
            System.out.println("000" + getResultSetData(rs));
            while (rs.next())
           
{
                vect.add((new DealString()).toString(rs.getString("TABLE_NAME")));
           
}
            rs.close();
       
} catch (SQLException sqle){
            System.out.println("调用DataBase.getTableList()函数错误:/r/n"
+ sqle + sqle.getErrorCode());
       
} catch (AbstractMethodError e){
            System.out.println("调用DataBase.getTableList()函数错误:/r/n"
+ e);
       
}
        return vect;
   
}


   
/** 
     * 数据表的结构 
    
* */
    public Vector getTableStruct(String table)
   
{
        Vector vect = new Vector();
        try{
           
/*
            
* rs = QuerySQL("select
* from "+table);

             * ResultSetMetaData rmd =rs.getMetaData();

             * int cols = rmd.getColumnCount();

             * for(int i=1;i <=cols;i++)

             *
{

             *     Hashtable hash = new Hashtable();
            
*    
//hash.put("目录名",rmd.getCatalogName(i));
            
*    
//hash.put("列返回值类型名",rmd.getColumnClassName(i));
            
*    
hash.put("列定义大小",rmd.getColumnDisplaySize(i)+"");
            
*    
//hash.put("列标签",rmd.getColumnLabel(i));
            
*    
hash.put("字段名",rmd.getColumnName(i));
            
*    
hash.put("列类型编号",rmd.getColumnType(i)+"");
            
*    
hash.put("列标准类型名",rmd.getColumnTypeName(i));
            
*    
hash.put("列精确度",rmd.getPrecision(i)+"");
            
*    
//hash.put("10",rmd.getScale(i)+"");
            
*    
//hash.put("11",rmd.getSchemaName(i));
            
*    
//hash.put("表名",rmd.getTableName(i));
            
*    
//hash.put("13",rmd.isAutoIncrement(i)+"");
            
*    
//hash.put("大小写敏感",rmd.isCaseSensitive(i)+"");
            
*    
//hash.put("是否为金额",rmd.isCurrency(i)+"");
            
*    
//hash.put("是否可写",rmd.isDefinitelyWritable(i)+"");
            
*    
hash.put("是否可为空",rmd.isNullable(i)+"");
            
*    
//hash.put("是否只读",rmd.isReadOnly(i)+"");
            
*    
//hash.put("是否可查询",rmd.isSearchable(i)+"");
            
*    
hash.put("是否数字",rmd.isSigned(i)+"");
            
*     //hash.put("是否可写",rmd.isWritable(i)+"");
vect.add(hash);
}
            
*/

            DatabaseMetaData dmd = conn.getMetaData();
            rs = dmd.getColumns(null,
ParentBean.DBName.toUpperCase(),
table.toUpperCase(), null);
            rs = dmd.getColumns(null,
"HG", "TEST", null);
            ResultSetMetaData rmd = rs.getMetaData();
            int cols = rmd.getColumnCount();
            System.out.println(cols +
"gggHHH");
            System.out.println("ResultSet" + getResultSetData(rs));
            while (rs.next())
           
{
                System.out.println("TTTTT");
                Hashtable hash = new Hashtable();
                hash.put("列定义大小", rs.getString("CHAR_OCTET_LENGTH") +
"");
                String f = rs.getString("COLUMN_NAME");
                ResultSet r = QuerySQL("select " + f + " from " +
table);
                ResultSetMetaData rm = r.getMetaData();

                hash.put("字段名", f +
"");
                hash.put("列类型编号", rm.getColumnType(1) +
"");
                hash.put("列标准类型名", rm.getColumnTypeName(1) + "");

                hash.put("是否可为空", rm.isNullable(1) +
"");
                hash.put("是否数字", rm.isSigned(1) +
"");
                hash.put("列定义大小", rm.getColumnDisplaySize(1) +
"");
                hash.put("列精确度", rs.getString("NUM_PREC_RADIX") +
"");

                r.close();
                Statement stst = r.getStatement();
                if (stst != null)
                    stst.close();
                vect.add(hash);
           
}
            Statement stmt = rs.getStatement();
            rs.close();
            if (stmt != null)
                stmt.close();
            System.out.println("____" +
vect);
        } catch (SQLException sqle){
            System.out.println("调用DataBase.getTableStruct()函数错误:/r/n"
+ sqle);
        } catch (AbstractMethodError e){
           
System.out.println("调用DataBase.getTableStruct()函数错误:/r/n" +
e);
       
}
        return vect;
   
}


   
/** 
     *
取得数据集内容 
     *
*/
    public Vector getResultSetData(ResultSet rs)
   
{
        Vector vect = new Vector();
        try{
            //取得列数和列名
            ResultSetMetaData rsmd = rs.getMetaData();
            int cols = rsmd.getColumnCount();
            while (rs.next())
           
{
                Hashtable hash = new Hashtable();
                for (int i = 1; i <= cols; i++)
               
{
                    DealString ds = new DealString();
                    String field = ds.toString(rsmd.getColumnName(i));
                    String value = ds.toString(rs.getString(i));
                    hash.put(field, value);
               
}
                vect.add(hash);
           
}
        } catch (SQLException sqle){
            System.out.println("调用DataBase.getResultSetData()函数错误:/r/n"
+ sqle);
       
}
        return vect;
   
}


   
/** 
     * 创建申明对象 
    
* */
    public void prepareStatement(String sql)
   
{
        try{
            pstm = conn.prepareStatement(sql);
       
} catch (SQLException sqle){
            System.out.println("调用DataBase.prepareStatement()函数错误:/r/n"
+ sqle);
        }
   
}


   
/** 
     * 执行查询 
     *
*/
    public void executeQuery()
   
{
        try{
            rs = pstm.executeQuery();
       
} catch (SQLException sqle){
            System.out.println("调用DataBase.executeQuery()函数错误:/r/n"
+ sqle);
        }
   
}


   
/** 
     * 转向下一条 
    
* */
    public boolean next()
   
{
        try{
            return rs.next();
       
} catch (SQLException sqle){
            System.out.println("调用DataBase.next()函数错误:/r/n"
+ sqle);
       
}
        return true;
   
}


   
/** 
     * 执行更新 
     *
*/
    public void executeUpdate()
   
{
        try{
            pstm.executeUpdate();
       
} catch (SQLException sqle){
            System.out.println("调用DataBase.executeUpdate()函数错误:/r/n"
+ sqle);
        }
   
}


   
/** 
     * 关闭申明对象 
    
* */
    public void closePstm()
   
{
        if (pstm != null)
            try{
                pstm.close();
           
} catch (SQLException sqle){
                System.out.println("调用DataBase.closePstm()函数错误:/r/n"
+ sqle);
           
}
    }


   
/** 
     * 关闭游标 
     *
*/
    public
void closeRs()
   
{
        if (rs != null)
            try{
                rs.close();
           
} catch (SQLException sqle){
                System.out.println("调用DataBase.closeRs()函数错误:/r/n"
+ sqle);
           
}
    }


   
/**

     
*  得到是否自动提交

     
*/

    public
boolean getAutoCommit()
   
{
        try {
            return conn.getAutoCommit();
       
} catch (SQLException e){
       
}
        return
true;
    }


/**

*
关闭自动提交

*/

    public void closeAutoCommit()
   
{
        try{
            conn.setAutoCommit(false);
       
} catch (SQLException e){
       
}
    }


/**

*
提交操作

**/

    public
void commit()
   
{
        try{
            conn.commit();
       
} catch (SQLException e){
       
}
    }


/**

*
执行回滚

**/

    public
void rollback()
   
{
        try{
            conn.rollback();
       
} catch (SQLException e){
       
}
    }


/**

*
设置自动回滚

*/

    public
void openAutoCommit()
   
{
        try{
            conn.setAutoCommit(true);
       
} catch (SQLException e){
       
}
    }


/**

*
创建statement 对象

**/

    public
void createStatement()
   
{
        try{
            stm = conn.createStatement();
       
} catch (SQLException e){
       
}
    }


/**


清空批处理

*/

    public
void clearBatch()
   
{
        try{
            stm.clearBatch();
       
} catch (SQLException e){
       
}
    }


/**

*
增加批处理

*/

    public void addBatch(String sql)
   
{
        try{
            stm.addBatch(sql);
       
} catch (SQLException e){
       
}
    }


/**


执行批处理

**/

    public
int[] executeBatch()
   
{
        try{
            return stm.executeBatch();
       
} catch (SQLException e){
       
}
        return null;
   
}


/**

*
关闭statement 对象

**/

    public
void closeStm()//专门使用
   
{
        if (stm != null)
            try{
                stm.close();
           
} catch (SQLException e){
           
}
    }


/**

*
测试是否连接

*/

    public
String ttest() throws
Exception
   
{
        PreparedStatement pstm = conn.prepareStatement("select * from
test1");
        ResultSet rs = pstm.executeQuery();
        rs.next();
        InputStream is = rs.getBinaryStream("ziduan");
        Statement stmt = rs.getStatement();
        rs.close();
        if (stmt != null)
            stmt.close();
        return (new DealFile()).readCHStr(is);
   
}


    public
static void main(String args[]) throws Exception
   
{
       
/*
         * 必须执行的代码 stm =
rs.getStatement(); rs.close();
stm.close();
        
*/
        System.out.println("begin/r/n/r/n");

        DataBase db = new DataBase();
        db.createConn("oracle.jdbc.driver.OracleDriver",
               
"jdbc:oracle:thin:@10.0.0.94:1521:hg",
"oaadminuser",
               
"lancom4454");
        //db.createConn("sun.jdbc.odbc.JdbcOdbcDriver","jdbc:odbc:test");
       
//db.createConn("com.microsoft.jdbc.sqlserver.SQLServerDriver","jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test","test","test");
       
//ParentBean.DBName = "hg";

       
//System.out.println(db.UpdateCLOB("test","","content","ttew测试tewagdsagsad"));
       
//System.out.println(db.QueryCLOB("test","","content"));

       
//System.out.println(db.getDataBaseInfo());
       
//System.out.println(db.getTableList());
       
//System.out.println(db.getTableStruct("test"));
       
//System.out.println(db.getResultSetData(db.QuerySQL("select *
from
        //
test")));
       
//System.out.println(db.getResultSetData(db.getTypeInfo()));

       
/**
         * ????? 1.Access不能取得表列表
2.Oracle不能取得表结构:CLOB,BLOB
3.不能取得视图结构
         *
4.clob,blob,time类型读出和写入时没有区分,都当作字符串处理了
5.字段精确度问题?如何区分和使用?
         *
6.定义不同数据库的需求, 7.可视化的界面
8.字段映射列表,如何更合理?
        

         *
1。字段类型,创建表时字段属性写法(长度,精确度,),写入数据时所用的函数setObject
        
*
clob,blob,字符串(Ascii,unicode),数字(整数,浮点数),时间,布尔型,字节类型,数组
        
* 2。如何取得access表列表 3。数据库驱动,不同数据库,字段映射配置情况
4。对不同的数据实现不同的配置选项,仿造SQLServer
        
*  
        
*/
       
/*
         *
//不用addBatch(),clearBatch() //str长度
<=file长度-2
         *
//间接方式----------------(1) db.prepareStatement("update test
set
         * dlxc=?");
db.setObject(1,"大类型测试","CLOB");
db.executeUpdate();
         *
db.closePstm(); //---------------------- db.prepareStatement("select
*
         * from test");
db.executeQuery();
db.next();
         *
System.out.println(db.getObject("dlxc","CLOB"));
db.closeRs();
         *
db.closePstm();
        

         *
//直接方式---------------------(2) db.prepareStatement("update test
set
         * dlxc = ? ");
FileInputStream fis = new
FileInputStream("out.txt");
        
* db.setAsciiStream(1,fis,100);
db.executeUpdate();
         *
//----------------------
         *
System.out.println(db.QueryCLOB("test","","dlxc"));
        
*  
        
*/
        //db.ExecuteSQL("create table
test1 (bh integer,ziduan blob)");
       
//db.ExecuteSQL("insert into test1(bh)
values(1)");
       
/*
         *
db.prepareStatement("update test1 set
ziduan=?");
         *
db.setObject(1,"大类型测试","BLOB"); db.executeUpdate();
db.closePstm();
        

         *
db.prepareStatement("select * from test1");
db.executeQuery();
         *
db.next();
System.out.println(db.getObject("ziduan","BLOB"));
        

         * db.closeRs();
db.closePstm();
        
*/
       
//System.out.println(db.ttest());

       
//db.prepareStatement("update article set
content=?");
       
//db.setObject(1,"大类型测试eee","BLOB");
       
//db.executeUpdate();
       
//db.closePstm();
       
//db.UpdateBLOB_JNDI("test1","bh=1","ziduan","大类型测试333");
       
//System.out.println(db.QueryBLOB_JNDI("article","id=60","content"));
       
System.out
               
.println(db.makeID("ZZ_GRWJB", "ZGBH", "WJBH", "2340",
false));
       
db.releaseConn();
       
System.out.println("/r/n/r/nend");
   
}
}

数据库操作通用类

时间: 2024-10-13 14:38:41

数据库操作通用类的相关文章

C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]

原文链接 //C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration; namespace XXX{    /// <summary>    /// 针对SQL Server数据库操作的通用类           /// </sum

C#---数据库访问通用类、Access数据库操作类、mysql类 .

//C# 数据库访问通用类 (ADO.NET)using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;using System.Configuration; namespace XXX{    /// <summary>    /// 针对SQL Server数据库操作的通用类           /// </summary&

C#数据库操作通用方法类

平时使用的数据库操作类整理更新后备份,记录下来以供以后使用,并顺便分享给大家一起交流.直接上源码: 整个底层操作方法分为4个类,基础方法类:SqlBase 基础工具类:SqlTool 日志类:DbLog  和MSSQL操作类:MsSqlHelper. 由于平时工作未用到其他类型数据库,因此未整理其他数据库的操作类,以后用到的话会进行更新. 首先是通用的数据库底层操作方法整理: /// <summary> /// 数据库操作基础方法类 /// </summary> public cl

如何将Android数据库操作通用化(三)

概述 悠悠绿水傍林侵日落观山四望回 幽林古寺孤明月冷井寒泉碧映台 鸥飞满浦渔舟泛鹤伴闲亭仙客来 游径踏花烟上走流溪远棹一篷开 概述 一个不小心都写了三篇了,也不知道大家还看得懂不?如果看不懂最好给我留个言,我好下一次改正. 接着上次的说,准备工作都已经做好了,现在咱们就要开始着手解决阻挡Android数据库操作通用化的五个问题了. 我们先回顾一下问题: 问题1:表名的获取 问题2:如何将实体中的数据,按照对应关系导入到数据库中 问题3:明确实体中主键是谁?获取到主键中封装的值 问题4:如何将数据

ASP.NET文件操作通用类

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 using System.IO; 7 using System.Web; 8 using System.Web.UI; 9 using System.Web.UI.WebControls; 10 11 12 public class WebFileHelper 13 { 14 15 FileInfo f

sqlserver数据库操作公共类DBOperate

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.Data; using System.Windows.Forms; using  WindowsFormsApplication1.DBTools;//提供数据库连接 namespace liuxw_MPS.DBTools {     ///

如何将Android数据库操作通用化(一)

概述 在开始考虑Android的数据库操作之前,我们先回想一下Web方面的数据库操作.如果我们只是停留在JDBC的简单使用和封装上(比如纯JDCB,或者DBUtils),即使我们对数据库的增删改查操作进行了接口的抽取,代码依旧会和业务有很强的耦合性. 经过我们分析,解除耦合性的关键在于如何解决自动映射"实体类 与 数据库表"之间的对应关系.如果能够做到这一步,那么我们就能够更好的解耦了,也能降低我们的代码重复率. 如果我们再跨前一步,使用更为优秀的框架(比如:Hibernate),这一

PHP数据库操作&amp;分页类

MySQL数据库操作类: 1 <?php 2 class mysql { 3 private $db_host; //数据库主机 4 private $db_user; //数据库用户名 5 private $db_pwd; //数据库用户名密码 6 private $db_database; //数据库名 7 private $conn; //数据库连接标识; 8 private $result; //执行query命令的结果资源标识 9 private $sql; //sql执行语句 10

C#的Access数据库操作 AccessHelper类

由于学校的安全级别提高了,我们以前做的网站使用拼接sql方法查询数据会被拦截,所以说网站就必须重构,在重构之余,复习了下AccessHelper类,随便复习了下C#数据库操作.下面我们就开始吧. 先说个工具类,就是池类Pool,很简单的一个类,直接上代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.