我在大三的时候写过一个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连接数据库的步骤: 1. 导入数据库驱动包:在JavaBean中,需要导入数据库驱动包,以便连接数据库。在本例中...
本篇将深入探讨如何利用JSP和JavaBean来对数据库表进行操作。 一、JSP简介 JSP是Java平台上的服务器端脚本语言,它允许开发人员在HTML页面中嵌入Java代码,从而实现动态网页的生成。JSP文件在服务器上被编译为...
数据库表生成JavaBean工具是一种非常实用的开发辅助工具,它能极大地提高开发效率,尤其是在处理大量数据模型对象时。此工具允许开发者连接到数据库,自动获取数据库中的表结构,并将其转换为符合Java Bean规范的类...
在数据库操作中,JavaBean通常用于表示数据库表的行,每个属性对应表的一列。 1. **数据库连接**:在Java中,我们通常使用JDBC(Java Database Connectivity)来建立与数据库的连接。JDBC提供了一套API,使得Java...
在本示例中,我们关注的是如何利用JavaBean连接到MySQL数据库,这是一个非常基础且重要的技能,尤其对于Java初学者来说。下面将详细阐述这个过程。 首先,我们需要创建一个JavaBean类,用于封装数据库连接的相关...
Java Web开发 JavaBean封装数据库操作实例
《使用JDBC和JavaBean操作数据库》学习资料.part01.rar
总结来说,"对数据库操作的javabean"是一种通过JavaBean进行数据库交互的方式,它利用JDBC API连接数据库,执行SQL语句,并封装这些操作以提供给其他组件使用。通过这种方式,我们可以创建更健壮、可维护的Java应用...
总结起来,"JAVA100例之实例88JavaBean连接数据库"是一个关于如何在Java程序中利用JavaBean和JDBC进行数据库操作的示例。通过这个例子,你可以学习到JavaBean的设计原则,以及如何使用JDBC API来执行数据库查询和...
总结,`jsp+javaBean查询数据库`涉及的关键点包括JSP与JavaBean的协作、数据库连接与查询、结果集处理、JavaBean的属性与方法、错误处理、资源管理以及数据库设计和安全。在实际开发中,还需要注意代码的可维护性、...
本项目是基于java的,在jsp中通过访问数据库里的数据实现实现用户登录操作。里面有部分js代码,希望对新手学web有帮助
javaBean连接数据库
在开始之前,我们需要创建一个JavaBean类来代表数据库表中的一个记录。这个类通常包含与数据库表字段相对应的私有属性,以及这些属性的getter和setter方法。例如,如果我们有一个名为`User`的表,包含`id`、`name`...
1. **创建Java Bean类**:根据数据库表结构,创建相应的Java Bean类,每个属性对应表中的一个字段,每个属性的getter和setter方法用于访问和修改这些属性的值。 ```java public class UserBean { private String...
**标题解析:** "MVC 利用servlet ,javabean,数据库技术" 这个标题揭示了我们要讨论的核心内容是模型-视图-控制器(Model-View-Controller,简称MVC)架构模式,它在Web应用开发中被广泛采用。在这个模式中,Servlet...
JavaBean是一种特殊的Java类,常用于封装数据和业务逻辑,便于在Java应用程序中重用和交换...通过这种方式,JavaBean可以作为数据访问层的一部分,帮助我们更方便地管理和操作数据库,实现数据的存取和业务逻辑的处理。
本教程将探讨如何利用JavaBean实现对数据库的各种操作,让开发者能够更轻松地处理数据存储和检索。 首先,JavaBean是一种符合特定规范的Java类,它封装了业务逻辑并提供了公共方法供其他组件调用。在JSP中,...
JavaBean连接数据库实际上就是定义与数据库连接 类的属性主要有连接数据库的对象、记录集对象、St t对象等;其构造方法实现对数据库的连接,即给连接 行初始化,根据连接不同的数据库,可分别对构造方 重载,如用...
JavaBean在IT行业中扮演着重要角色,特别是在Java Web开发中,它是实现业务逻辑和视图层解耦的关键组件...通过理解这些概念并结合提供的示例,开发者可以更好地掌握如何在实际项目中有效地使用JavaBean进行数据库操作。
- **@Table**:用于更精确地定义实体所对应的数据库表,可以指定表名和序列化选项。 - **@Id**:标识类中的属性为主键,对应数据库表的主键字段。可以配合@IdClass或@GeneratedValue来指定主键生成策略。 - **@...