⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 database.java

📁 JSP华源网校+西部软件JSP版
💻 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 + -