利用javaBean操作数据库表及其子段

来源:互联网 发布:ubuntu恢复rm删除文件 编辑:程序博客网 时间:2024/05/22 13:47
利用javaBean操作数据库表及其子段

我在大三的时候写过一个javabean,可以实现连接数据库,对表的操作,以及对其中的字段值经过字符串运算后提取新的SQL条件,我现在拿出来与大家共享。

dbBean.java//连接数据库SQL Server2000

package pub;
import java.sql.*;
import java.io.*;
import java.util.*;
 
public class dbBean {
 
 public Connection conn = null;
 public Statement stmt = null;
 public ResultSet rs = null;

 public dbBean() {
  try {
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      }
  catch (ClassNotFoundException e) {
        System.err.println("OpenDB():"+e.getMessage());
                                  }
                 }
 public ResultSet executeQuery(String sql) {
  try {
 conn=DriverManager.getConnection("jdbc:odbc:KMHXBY","sa","");
 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        rs = stmt.executeQuery(sql);//execute sql
      }
  catch (java.sql.SQLException e) {
        System.err.println("OpenDB.executeQuery():"+e.getMessage());
                                  }
        return rs;
                                           }
 public int executeUpdate(String sql) {
  int rowscount=0;
  try {
 conn=DriverManager.getConnection("jdbc:odbc:foxv21","sa","");
 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        rowscount = stmt.executeUpdate(sql);//execute sql
      }
  catch (java.sql.SQLException e) {
        System.err.println("OpenDB.executeUpdate():"+e.getMessage());
        }
        return rowscount;
           }
 public void destroy() {
  try {
 stmt.close();
        conn.close();
      }
  catch(Exception e) {
        System.err.println("DBOperate.destroy():"+e.getMessage());
                     }
                       }
                    }

GetSQL.java

//操作foa_WebPurview表,它有两个字段,一个f_UserName,一个f_SearchPurview,

这个标注要是纪录用户查询的条件,然后我要加上必需的条件后,形成真正的SQL语句,这就是一个字符串操作。

package StringOP;

import java.lang.*;
import java.util.*;
import java.sql.*;

import pub.*;

public class GetSQL{
      public  String rsAr;              file://档案文件必须要满足的条件
      public  String rsFile;             file://普通文件必须要满足的条件
     
      public  String rsSql = "";//读取得SQL语句
      public  String rsAddAr = "";       file://档案附加的条件
      public  String rsAddFile = "";     file://普通附加的条件
      public  ResultSet dbRs;
            
      public GetSQL(String s){
           int i = 0;        file://String Index
           int IsOver = 0;   file://Is String Over?
           String sql = " ";
            
             file://连接数据库
            dbBean dbConn = new dbBean();
            
            file://初始化rsAr,rsFile
            rsFile = "SELECT * FROM foa_WJ WHERE (((f_Status <>  '已移交') AND (f_Status <>  '已归档')) OR (f_Status IS NULL)) AND ((F_MarkDel<>1) OR (f_MarkDel IS NULL)) Order By f_JNSXH";
            rsAr   = "SELECT * FROM foa_WJ WHERE (f_Status = '已归档') AND ((fcSys_MID > 0) AND (NOT fcSys_MID IS NULL)) AND ((F_MarkDel<>1) OR (f_MarkDel IS NULL)) ORDER BY f_JNSXH";
           
            sql = "select * from foa_WebPurView where f_UserName = '"+s+"' ";
          
            file://从数据库中读取用户条件,初始化rsSql
            try {    
                dbRs = dbConn.executeQuery(sql);        file://这里只能有一条纪录
                if (dbRs!=null && dbRs.next())
                rsSql = dbRs.getString("f_SearchPurview");
                } catch(Exception e) {
                          e.printStackTrace();
                                     }
                
              
           
            file://分离rsAddAr和rsAddFile
           if (rsSql == ""){
                  System.out.println("用户自定义条件为空或是没有满足条件的纪录!");
                  }
            else{
               while ((IsOver == 0)){     
               if ((i <= rsSql.length()-5)&&(rsSql.charAt(i) == 'A')){
                file://当前为档案
                i = i + 1;
                while((i <= rsSql.length()-5)&&(rsSql.charAt(i) !='~')){
                             while((i <= rsSql.length()-5)&&(rsSql.charAt(i) != ':')){
                         ++i;
                        }
                        if((i <= rsSql.length()-5)&&(rsSql.charAt(i) == ':')){
                         i = i + 1;
                         while((i <= rsSql.length()-1)&&(rsSql.charAt(i) !='~')){
                          rsAddAr = rsAddAr + rsSql.charAt(i);
                          ++i;
                         }
                         
                        }
                }
                          if(rsSql.charAt(i) == '~'){
                          i = i + 4;
                          if(i == rsSql.length()){
                           IsOver = 1;
                           
                           continue;
                          }
                          else{
                               ++i;
                              continue;
                          }
                          }
               
                file://System.out.println(rsSql.charAt(i));
                   }
                  else if ((i <= rsSql.length()-5)&&(rsSql.charAt(i) == 'F')){
                        file://当前为文件
                                        i = i + 1;
                while((i <= rsSql.length()-5)&&(rsSql.charAt(i) !='~')){
                             while((i <= rsSql.length()-5)&&(rsSql.charAt(i) != ':')){
                         ++i;
                        }
                        if((i <= rsSql.length()-5)&&(rsSql.charAt(i) == ':')){
                         i = i + 1;
                         while((i <= rsSql.length()-1)&&(rsSql.charAt(i) !='~')){
                          rsAddFile = rsAddFile + rsSql.charAt(i);
                          ++i;
                         }
                         
                        }
                }
                          if(rsSql.charAt(i) == '~'){
                          i = i + 4;
                          if(i == rsSql.length()){
                           IsOver = 1;
                           
                           continue;
                          }
                          else{
                               ++i;
                              continue;
                          }
                          }
                }
                  
                   rsAddAr = rsAddAr + ";" + "!";                  
                   rsAddFile = rsAddFile +";" +"!";
                   break;
      }                        
}
                  
}
   public String GetArchiveSQL(){
           file://得到档案字符串,对rsAr和rsAddAr的操作
          
           String tempAr = "";
           String tempAdd = "";
           int IndexAr = 0;      file://rsAr上的位置
           int INdexAdd = 0 ;    file://rsAddAr上的位置
           int IsFirst = 0;
          
           file://找到rsAr的条件的地方
           while((rsAr.charAt(IndexAr) != '(')&&(IndexAr <= rsAr.length()-1)){
              tempAr = tempAr + rsAr.charAt(IndexAr);
              IndexAr++;
            }           file://IndexAr现在指在了第一个(的地方
            
           tempAr = tempAr + " ";
          
         
           while((INdexAdd <= rsAddAr.length()-1)&&(rsAddAr.charAt(INdexAdd) != '!')){
            while((INdexAdd <= rsAddAr.length()-1)&&(rsAddAr.charAt(INdexAdd) != ';')){
             tempAdd = tempAdd + rsAddAr.charAt(INdexAdd);
             ++INdexAdd;
             file://System.out.println(tempAdd);
                 } file://分离出了用户的一个条件
            if((INdexAdd <= rsAddAr.length()-1)&&(rsAddAr.charAt(INdexAdd) == ';')){
                INdexAdd = INdexAdd + 1;
                if(IsFirst == 0){
                  tempAr = tempAr  + tempAdd + " "+ "AND" + " ";
                  IsFirst = 1;
               }
                    else{
                      tempAr = tempAr  + tempAdd + " "+"AND" +" ";
                    }
                    tempAdd = "";
               }
          
            }//用户的条件都结束了
            
           file://将rsAr中的条件加上;
           while((IndexAr <= rsAr.length()-1)&&(rsAr.charAt(IndexAr) != ';')){
            tempAr = tempAr + rsAr.charAt(IndexAr);
            ++IndexAr;
       }
            tempAr = tempAr + ';';
           file://System.out.println(tempAr);
           return tempAr;
      }
       
      public String GetUserFileSQL(){
           file://得到文件字符串,对rsFile和rsAddFile的操作
          
           String tempFile = "";
           String tempAdd = "";
           int IndexFile = 0;      file://rsAr上的位置
           int INdexAdd = 0 ;    file://rsAddAr上的位置
           int IsFirst = 0;
          
           file://找到rsAr的条件的地方
           while((rsFile.charAt(IndexFile) != '(')&&(IndexFile <= rsFile.length()-1)){
              tempFile = tempFile + rsFile.charAt(IndexFile);
              IndexFile++;
            }           file://IndexAr现在指在了第一个(的地方
            
           tempFile = tempFile + " ";
          
         
           while((INdexAdd <= rsAddFile.length()-1)&&(rsAddFile.charAt(INdexAdd) != '!')){
            while((INdexAdd <= rsAddFile.length()-1)&&(rsAddFile.charAt(INdexAdd)!= ';')){
             tempAdd = tempAdd + rsAddFile.charAt(INdexAdd);
             ++INdexAdd;
             file://System.out.println(tempAdd);
                 } file://分离出了用户的一个条件
            if((INdexAdd <= rsAddFile.length()-1)&&(rsAddFile.charAt(INdexAdd) == ';')){
                INdexAdd = INdexAdd + 1;
                if(IsFirst == 0){
                  tempFile = tempFile  + tempAdd + " "+ "AND" + " ";
                  IsFirst = 1;
               }
                    else{
                      tempFile = tempFile  + tempAdd + " "+"AND" +" ";
                    }
                    tempAdd = "";
               }
          
            }//用户的条件都结束了
            
           file://将rsAr中的条件加上;
           while((IndexFile <= rsFile.length()-1)&&(rsFile.charAt(IndexFile) != ';')){
            tempFile = tempFile + rsFile.charAt(IndexFile);
            ++IndexFile;
       }
            tempFile = tempFile + ';';
           file://System.out.println(tempFile);
           return tempFile;
      } 
       
      /*public static void main(String[] args){
       String s = "";
       String ss = "";
       GetSQL aa = new GetSQL(s);
       s= aa.GetArchiveSQL();
       ss = aa.GetUserFileSQL();
       System.out.println(s);
       System.out.println(ss);
       
       }*/
}

好了,全部代码,jdk下测试通过


原创粉丝点击