3、主要程序代码
1) 程序初始化
String tablename=request.getParameter("tablename");//提取表名
String OperType=request.getParameter("OperType");//提取操作类型
String sFieldValue="";//存放表单提交的字段数据值
String fieldname="",Datatype="" //存放字段名,字段数据类型
int iFieldvalue=0;
String updateSql="",whereSql=" where ",insSql1="",insSql2="",
opSql="",strSql ="";ResultSet rs1=null,rs2=null;
insSql1="insert into "+tablename+" (";
insSql2="values(";
2)生成sql语句关键字段部分
生成insert语句关键字段部分,如:insert into table1(id 和 values(100));
只使用关键字段生成update,delete语句where部分,如:where id=100;
在操作类型为update时,网页form表单中不对关键字段的数据进行修改。
rs1=Stmt.executeQuery(
"SELECT column_name FROM v_pkey_column WHERE table_name='"+tablename+"'");
//取关键字段字段名while(rs1.next()){
fieldname=rs1.getString("column_name");
rs2=Stmt.executeQuery("SELECT data_type FROM v_dbstru WHERE
table_name='"+tablename+"' AND column_name='"+fieldname+"'");
//取关键字段数据类型
if(rs2.next()){
Datatype=rs2.getString("data_type");
sFieldValue=request.getParameter(fieldname.toLowerCase());
//生成insert语句关键字段部分
if(OperType.equals("insert")){
insSql1+=fieldname+",";
if((sFieldValue==null) ){
//表单未提交关键字段数据值时,本文只按数字型处理,数据值按下一流水号计算。
rs2= Stmt. executeQuery("SELECT max("+fieldname+")+1 FROM "+tablename);
rs2. next();
iFieldvalue=rs2.getInt(1);
insSql2+=Integer.toString(iFieldvalue)+",";
}
else if(Datatype.equals("DATE")){
insSql2+= "To_Date('" + sFieldValue + "','YYYY-MM-DD'),";
}else if(Datatype.equals("VARCHAR2") || Datatype.equals("CHAR")){
insSql2+="'" + sFieldValue+"',";
}
else /*NUMBER,FLOAT */ insSql2+=sFieldValue+",";}
//生成update,delete语句where部分:where fieldname=…… AND
if(OperType.equals("update") || OperType.equals("delete")){
if(Datatype.equals("DATE")){
whereSql+=fieldname+"=To_Date('" + sFieldValue + "','YYYY-MM-DD') AND ";
}
else if(Datatype.equals("VARCHAR2") || Datatype.equals("CHAR")){
whereSql+=fieldname+"='" + sFieldValue+"' AND ";
}else /*NUMBER,FLOAT */ whereSql+=fieldname+"="+ sFieldValue+" AND ";} }
}
whereSql=whereSql.substring(0,whereSql.length()-4);
相关专题
- 用JFreeChart增强JSP报表的用户体验 (125次浏览)
- 解析Servlet/JSP会话跟踪机制 (42次浏览)
- 自行开发JSP HTTP服务器的绝对秘籍(二) (22次浏览)
- 整理近几天处理JSP页面中遇到的几个问题 (20次浏览)
- 在Apache中整合JSP和PHP (19次浏览)
- 我们还需要JSP吗? (18次浏览)
- 两级下拉框的JSP简单实现 (18次浏览)
- 深入讲解提升JSP应用程序的七个方法 (15次浏览)
- JSP/Servlet/JSF中对标签库的深入研究 (13次浏览)
- JSP/Servlet:Servlet/JSP会话跟踪机制 (8次浏览)



