`
jayjayjays
  • 浏览: 214790 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • java
阅读更多
利用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下测试通过


分享到:
评论

相关推荐

    使用JavaBean连接数据库

    使用JavaBean连接数据库,可以将数据库操作封装在JavaBean中,从而简化数据库操作和数据访问。 JavaBean连接数据库的步骤: 1. 导入数据库驱动包:在JavaBean中,需要导入数据库驱动包,以便连接数据库。在本例中...

    jsp+javabean对数据库表的操作

    本篇将深入探讨如何利用JSP和JavaBean来对数据库表进行操作。 一、JSP简介 JSP是Java平台上的服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,从而实现动态网页的生成。JSP文件在服务器上被编译为...

    数据库表生成javabean工具及源代码(修正版)

    数据库表生成JavaBean工具是一种非常实用的开发辅助工具,它能极大地提高开发效率,尤其是在处理大量数据模型对象时。此工具允许开发者连接到数据库,自动获取数据库中的表结构,并将其转换为符合Java Bean规范的类...

    使用javabean封装数据库操作1.rar_bean_javabean_javabean 数据库_planet7r1

    在数据库操作中,JavaBean通常用于表示数据库表的行,每个属性对应表的一列。 1. **数据库连接**:在Java中,我们通常使用JDBC(Java Database Connectivity)来建立与数据库的连接。JDBC提供了一套API,使得Java...

    一个JAVABEAN连接数据库的小例子

    在本示例中,我们关注的是如何利用JavaBean连接到MySQL数据库,这是一个非常基础且重要的技能,尤其对于Java初学者来说。下面将详细阐述这个过程。 首先,我们需要创建一个JavaBean类,用于封装数据库连接的相关...

    Java Web开发 JavaBean封装数据库操作实例

    Java Web开发 JavaBean封装数据库操作实例

    《使用JDBC和JavaBean操作数据库》学习资料.part01.rar

    《使用JDBC和JavaBean操作数据库》学习资料.part01.rar

    对数据库操作的javabean

    总结来说,"对数据库操作的javabean"是一种通过JavaBean进行数据库交互的方式,它利用JDBC API连接数据库,执行SQL语句,并封装这些操作以提供给其他组件使用。通过这种方式,我们可以创建更健壮、可维护的Java应用...

    JAVA100例之实例88JavaBean连接数据库

    总结起来,"JAVA100例之实例88JavaBean连接数据库"是一个关于如何在Java程序中利用JavaBean和JDBC进行数据库操作的示例。通过这个例子,你可以学习到JavaBean的设计原则,以及如何使用JDBC API来执行数据库查询和...

    jsp+javaBean查询数据库

    总结,`jsp+javaBean查询数据库`涉及的关键点包括JSP与JavaBean的协作、数据库连接与查询、结果集处理、JavaBean的属性与方法、错误处理、资源管理以及数据库设计和安全。在实际开发中,还需要注意代码的可维护性、...

    用JavaBean连接数据库实现简单的用户登录操作

    本项目是基于java的,在jsp中通过访问数据库里的数据实现实现用户登录操作。里面有部分js代码,希望对新手学web有帮助

    javaBean连接数据库

    javaBean连接数据库

    javabean的数据库增删改查

    在开始之前,我们需要创建一个JavaBean类来代表数据库表中的一个记录。这个类通常包含与数据库表字段相对应的私有属性,以及这些属性的getter和setter方法。例如,如果我们有一个名为`User`的表,包含`id`、`name`...

    数据库实体对象转换JavaBean_数据库对象转Javabean_

    1. **创建Java Bean类**:根据数据库表结构,创建相应的Java Bean类,每个属性对应表中的一个字段,每个属性的getter和setter方法用于访问和修改这些属性的值。 ```java public class UserBean { private String...

    MVC 利用servlet ,javabean,数据库技术

    **标题解析:** "MVC 利用servlet ,javabean,数据库技术" 这个标题揭示了我们要讨论的核心内容是模型-视图-控制器(Model-View-Controller,简称MVC)架构模式,它在Web应用开发中被广泛采用。在这个模式中,Servlet...

    javabean连接数据库SQL2000

    JavaBean是一种特殊的Java类,常用于封装数据和业务逻辑,便于在Java应用程序中重用和交换...通过这种方式,JavaBean可以作为数据访问层的一部分,帮助我们更方便地管理和操作数据库,实现数据的存取和业务逻辑的处理。

    一个javabean轻松实现对数据库的各种操作.rar_javabean_javabean 数据库_jsp

    本教程将探讨如何利用JavaBean实现对数据库的各种操作,让开发者能够更轻松地处理数据存储和检索。 首先,JavaBean是一种符合特定规范的Java类,它封装了业务逻辑并提供了公共方法供其他组件调用。在JSP中,...

    基于JavaBean技术的数据库访问及应用

    JavaBean连接数据库实际上就是定义与数据库连接 类的属性主要有连接数据库的对象、记录集对象、St t对象等;其构造方法实现对数据库的连接,即给连接 行初始化,根据连接不同的数据库,可分别对构造方 重载,如用...

    JavaBean结合数据库综合举例.rar

    JavaBean在IT行业中扮演着重要角色,特别是在Java Web开发中,它是实现业务逻辑和视图层解耦的关键组件...通过理解这些概念并结合提供的示例,开发者可以更好地掌握如何在实际项目中有效地使用JavaBean进行数据库操作。

    使用注解javaBean关联数据库字段

    - **@Table**:用于更精确地定义实体所对应的数据库表,可以指定表名和序列化选项。 - **@Id**:标识类中的属性为主键,对应数据库表的主键字段。可以配合@IdClass或@GeneratedValue来指定主键生成策略。 - **@...

Global site tag (gtag.js) - Google Analytics