博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用javaBean操作数据库表及其子段 (转)
阅读量:2500 次
发布时间:2019-05-11

本文共 6094 字,大约阅读时间需要 20 分钟。

利用javaBean操作数据库表及其子段 (转)[@more@]

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

Bean.java//连接数据库2000

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..odbc.JdbcOdbc");
  }
  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 rowunt=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_Purview表,它有两个字段,一个f_UserName,一个f_SearchPurview,

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

package StringOP;

import java.lang.*;

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

import pub.*;

public class GetSQL{

  public  String rsAr;  案必须要满足的条件
  public  String rile;  通文件必须要满足的条件
 
  public  String rsSql = "";//读取得SQL语句
  public  String rsAddAr = "";  案附加的条件
  public  String rsAddFile = "";  通附加的条件
  public  ResultSet dbRs;
   
  public GetSQL(String s){
    int i = 0;  Index
    int IsOver = 0;  String Over?
    String sql = " ";
 
  接数据库
  dbBean dbConn = new dbBean();
 
  始化rsAr,rsFile
  rsFile = " * 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+"' ";
 
  数据库中读取用户条件,初始化rsSql
  try { 
  dbRs = dbConn.executeQuery(sql);  里只能有一条纪录
  if (dbRs!=null && dbRs.next())
  rsSql = dbRs.getString("f_SearchPurview");
  } catch(Exception e) {
  e.printStackTrace();
  }
 
 
 
  离rsAddAr和rsAddFile
  if (rsSql == ""){
    System.out.println("用户自定义条件为空或是没有满足条件的纪录!");
    }
  else{
  while ((IsOver == 0)){ 
    if ((i <= rsSql.length()-5)&&(rsSql.charAt(i) == 'A')){
     前为档案
     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;
   }
   }
 
  (rsSql.charAt(i));
  }
  else if ((i <= rsSql.length()-5)&&(rsSql.charAt(i) == 'F')){
  前为文件
     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(){
    到档案字符串,对rsAr和rsAddAr的操作
   
    String tempAr = "";
    String tempAdd = "";
    int IndexAr = 0;  上的位置
    int INdexAdd = 0 ;  上的位置
    int IsFirst = 0;
   
    到rsAr的条件的地方
    while((rsAr.charAt(IndexAr) != '(')&&(IndexAr <= rsAr.length()-1)){
      tempAr = tempAr + rsAr.charAt(IndexAr);
      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;
     (tempAdd);
      } 离出了用户的一个条件
     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 = "";
      }
   
     }//用户的条件都结束了
     
    rsAr中的条件加上;
    while((IndexAr <= rsAr.length()-1)&&(rsAr.charAt(IndexAr) != ';')){
     tempAr = tempAr + rsAr.charAt(IndexAr);
     ++IndexAr;
   }
    tempAr = tempAr + ';';
    (tempAr);
    return tempAr;
  }
 
  public String GetUserFileSQL(){
    到文件字符串,对rsFile和rsAddFile的操作
   
    String tempFile = "";
    String tempAdd = "";
    int IndexFile = 0;  上的位置
    int INdexAdd = 0 ;  上的位置
    int IsFirst = 0;
   
    到rsAr的条件的地方
    while((rsFile.charAt(IndexFile) != '(')&&(IndexFile <= rsFile.length()-1)){
      tempFile = tempFile + rsFile.charAt(IndexFile);
      IndexFile++;
     }  现在指在了第一个(的地方
     
    tempFile = tempFile + " ";
   
   
    while((INdexAdd <= rsAddFile.length()-1)&&(rsAddFile.charAt(INdexAdd) != '!')){
     while((INdexAdd <= rsAddFile.length()-1)&&(rsAddFile.charAt(INdexAdd)!= ';')){
     tempAdd = tempAdd + rsAddFile.charAt(INdexAdd);
     ++INdexAdd;
     (tempAdd);
      } 离出了用户的一个条件
     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 = "";
      }
   
     }//用户的条件都结束了
     
    rsAr中的条件加上;
    while((IndexFile <= rsFile.length()-1)&&(rsFile.charAt(IndexFile) != ';')){
     tempFile = tempFile + rsFile.charAt(IndexFile);
     ++IndexFile;
   }
    tempFile = tempFile + ';';
    (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);
   
   }*/
}

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-959382/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-959382/

你可能感兴趣的文章
web.xml 配置中classpath: 与classpath*:的区别
查看>>
suse如何修改ssh端口为2222?
查看>>
详细理解“>/dev/null 2>&1”
查看>>
suse如何创建定时任务?
查看>>
suse搭建ftp服务器方法
查看>>
centos虚拟机设置共享文件夹并通过我的电脑访问[增加smbd端口修改]
查看>>
文件拷贝(IFileOperation::CopyItem)
查看>>
MapReduce的 Speculative Execution机制
查看>>
大数据学习之路------借助HDP SANDBOX开始学习
查看>>
Hadoop基础学习:基于Hortonworks HDP
查看>>
为什么linux安装程序 都要放到/usr/local目录下
查看>>
Hive安装前扫盲之Derby和Metastore
查看>>
永久修改PATH环境变量的几种办法
查看>>
大数据学习之HDP SANDBOX开始学习
查看>>
Hive Beeline使用
查看>>
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
2020-11-18
查看>>
Docker面试题(二)
查看>>