📄 database.java
字号:
package org.jetic.web;import java.sql.ResultSet;import java.sql.Statement;import java.util.Vector;import javax.servlet.http.HttpServletRequest;import org.jetic.util.Format;/** * Title: 经天科技 * Description: * Copyright: Copyright (c) 2001 * Company: www.jetic.org 经天 * @author hover * @version 1.0 */public class DataBase { private java.sql.Statement stmt; private javax.servlet.http.HttpServletRequest request; private String table; private int ID = 0; private Vector fields; public DataBase() { fields = new Vector(20); } public boolean addField(DataField field) { if (indexOfField(field) > -1) return false; fields.addElement(field); return true; } public boolean set(String property, String value) { int index = indexOfField(property); // 找不到属性 if (index < 0) return false; DataField field = (DataField)(fields.elementAt(index)); field.setValue(value); return true; } public boolean set(String property) { String value = request.getParameter(property); // 参数为空值 if (value == null) return false; return set(property, value); } public String getPlain(String property) { int index = indexOfField(property); if (index < 0) return null; DataField field = (DataField)(fields.elementAt(index)); return new String(field.getValue()); } public String getInput(String property) { return Format.toHtmlInput(getPlain(property)); } public String get(String property) { return Format.toHtml(getPlain(property)); } public boolean isSavable() { Vector validFields = new Vector(20); DataField field; int index; // 取出有效字段 for (index = 0; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); if (field.saveRequired) validFields.addElement(field); } for (index = 0; index < validFields.size(); index++) { field = (DataField)(validFields.elementAt(index)); // TODO System.out.println("正在检查字段:" + field.name + ",值:" + field.getValue()); if (field.getValue() == null || field.getValue().length() < 1) return false; } return true; } public boolean isUpdatable() { Vector validFields = new Vector(20); DataField field; int index; if (ID < 1) return false; // 取出有效字段 for (index = 0; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); if (field.updateRequired) validFields.addElement(field); } for (index = 0; index < validFields.size(); index++) { field = (DataField)(validFields.elementAt(index)); if (field.getValue() == null || field.getValue().length() < 1) return false; } return true; } public boolean isDeletable() { return (ID > 0); } public boolean save() { Vector validFields = new Vector(20); DataField field; int index; String sql; sql = "INSERT INTO " + table + " ("; // 取出有效字段 for (index = 0; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); if (field.savable) validFields.addElement(field); } for (index = 0; index < validFields.size(); index++) { field = (DataField)(validFields.elementAt(index)); sql += field.fieldName; if (index < validFields.size() - 1) sql += ","; } sql += ") VALUES ("; for (index = 0; index < validFields.size(); index++) { field = (DataField)(validFields.elementAt(index)); if (field.type == DataField.TYPE_INT) sql += field.getValue(); else sql += "'" + Format.toSql(field.getValue()) + "'"; if (index < validFields.size() - 1) sql += ","; } sql += ")"; try { stmt.executeUpdate(sql); return true; } catch (Exception ex) { ex.printStackTrace(System.err); return false; } } public boolean update() { Vector validFields = new Vector(20); DataField field; int index; String sql; sql = "UPDATE " + table + " SET "; // 取出有效字段 for (index = 0; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); if (field.updatable) validFields.addElement(field); } for (index = 0; index < validFields.size(); index++) { field = (DataField)(validFields.elementAt(index)); sql += field.fieldName + "="; if (field.type == DataField.TYPE_INT) sql += field.getValue(); else sql += "'" + Format.toSql(field.getValue()) + "'"; if (index < validFields.size() - 1) sql += ","; } sql += " WHERE [ID] = " + ID; try { stmt.executeUpdate(sql); return true; } catch (Exception ex) { ex.printStackTrace(System.err); return false; } } public boolean delete() { String sql = "DELETE FROM " + table + " WHERE [ID] =" + ID; try { stmt.executeUpdate(sql); return true; } catch (Exception ex) { ex.printStackTrace(System.err); return false; } } public String[] getDataFields() { String[] f = new String[fields.size() - 1]; DataField field; int index; for (index = 1; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); f[index - 1] = field.fieldName; } return f; } // 内部私有方法 private int indexOfField(String property) { DataField field; int index; for (index = 0; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); if (field.name.equals(property)) return index; } return -1; } private int indexOfField(DataField field) { return fields.indexOf(field); } private String valueOfField(int index) { DataField field = (DataField)(fields.elementAt(index)); return field.getValue(); } private String valueOfField(String property) { return valueOfField(indexOfField(property)); } private DataField getField(int index) { return (DataField)(fields.elementAt(index)); } private DataField getField(String property) { return getField(indexOfField(property)); } // 属性 public Vector getFields() { return fields; } public java.sql.Statement getStmt() { return stmt; } public void setStmt(java.sql.Statement newStmt) { stmt = newStmt; } public void setTable(String newTable) { table = newTable; } public String getTable() { return table; } public void setRequest(javax.servlet.http.HttpServletRequest newRequest) { request = newRequest; } public javax.servlet.http.HttpServletRequest getRequest() { return request; } public void setID(int newID) { ID = newID; DataField field; int index; String sql; sql = "SELECT "; for (index = 0; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); sql += field.fieldName; if (index < fields.size() - 1) sql += ","; } sql += " FROM " + table + " WHERE [ID] = " + ID; try { ResultSet rs = stmt.executeQuery(sql); if (rs.next()) { for (index = 0; index < fields.size(); index++) { field = (DataField)(fields.elementAt(index)); field.setValue(rs.getString(index + 1)); } } rs.close(); } catch (Exception ex) { ex.printStackTrace(System.err); } } public int getID() { return ID; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -