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

📄 simpleentitytable.java

📁 梦界家园程序开发基底框架
💻 JAVA
字号:
package jm.framework.util;

import java.util.Iterator;
import java.util.Map;

import jm.dbo.JMDBOConfig;
import jm.dbo.JMDBOConntionCall;
import jm.dbo.JMDBOOutKeyValue;
import jm.dbo.JMDBOTable;
import jm.framework.gui.JMEntity;
import jm.util.JM2DArray;
import jm.util.JMCheck;
import jm.util.JMMap;
import jm.util.JMUtility;
import jm.util.JMVector;

/**
 * <p>使用Entity检索数据</p>
 *
 * <p>Copyright: Copyright (c) 2004-2006</p>
 *
 * <p>Company: 1SHome</p>
 *
 * <p>@author Spook</p>
 *
 * @since 1.3
 * @see JDK 1.5.0.6
 */
public class SimpleEntityTable extends JMDBOTable {

    private JMDBOConntionCall conntion_ = null;

    private DBInValue value_ = null;
    private JMEntity entity_ = null;
    public SimpleEntityTable (JMEntity entity) {
        super((entity.getClass().getSimpleName()).substring(1), "");
        value_ = JMDBOConfig.getSQLDefaultInKey();
        entity_ = entity;
    }

    public void setLocalConntion () {
        value_ = JMDBOConfig.getSQLLocalInKey();
    }

    public DBOutValue select () throws Exception {
        StringBuffer sql = new StringBuffer();
        sql.append(" select * ");
        // from
        sql.append(" from " + this.getName() + " ");

        // where
        String sqlWhere = getSQLWhere();
        if (!"".equals(sqlWhere)) {
            sql.append(" where " + sqlWhere);
        }

        value_.setStrType(DBInValue.SVC_SELECT);
        value_.setSQLID(sql.toString());
System.out.println("select=="+value_.getSQLID());
        return execute(value_);
    }

    public String getSQLWhere (JMEntity entity) {
        JMMap paramters = new JMMap();
        StringBuffer sqlWhere = new StringBuffer();
        JMUtility.reflectIntoJMMap(entity, paramters);
        Iterator it = paramters.entrySet().iterator();
        boolean addG = false;
        while (it.hasNext()) {
            Map.Entry mpField = (Map.Entry) it.next();
            if (!JMCheck.isNull(mpField.getValue())) {
                if (addG) {
                    sqlWhere.append(" and ");
                } else {
                    addG = true;
                }
                sqlWhere.append(mpField.getKey() + " = " + "'" + mpField.getValue() + "'");
            }
        }
        return "" + sqlWhere;
    }

    public String getSQLWhere () {
        return getSQLWhere(entity_);
    }

    private String getSQLFirst (String[] fields) {
            StringBuffer sql = new StringBuffer("select ");
            boolean addG = false;
            if (fields == null || fields.length == 0) {
                sql.append(" * ");
            } else {
                for (int i = 0; i < fields.length; i++) {
                    if (addG) {
                        sql.append(" , ");
                    } else {
                        addG = true;
                    }
                    sql.append(fields[i]);
                }
            }

            // from
            sql.append(" from " + this.getName() + " ");
            return sql.toString();
    }

    public DBOutValue select (String ...fields) throws Exception {
        StringBuffer sql = new StringBuffer(getSQLFirst(fields));
        // where
        String sqlWhere = getSQLWhere();
        if (!"".equals(sqlWhere)) {
            sql.append(" where " + sqlWhere);
        }

        value_.setStrType(DBInValue.SVC_SELECT);
        value_.setSQLID(sql.toString());
System.out.println("select=="+value_.getSQLID());
        return execute(value_);
    }

    public DBOutValue select (String sqlWhere , String ...fields ) throws Exception {
        StringBuffer sql = new StringBuffer(getSQLFirst(fields));
        // where
        if (!JMCheck.isNull(sqlWhere)) {
            sql.append(" where " + sqlWhere);
        }

        value_.setStrType(DBInValue.SVC_SELECT);
        value_.setSQLID(sql.toString());
System.out.println("select=="+value_.getSQLID());
        return execute(value_);
    }

    public DBOutValue insert () throws Exception {
        StringBuffer sql = new StringBuffer();
        StringBuffer sqlParam = new StringBuffer();
        // insert
        sql.append(" insert into ");
        // from
        sql.append(" " + this.getName() + " (");
        JM2DArray iParameter = new JM2DArray();
        JMUtility.reflectIntoJM2DArray(entity_, iParameter, -1);

        JMVector<String> colNames = iParameter.getColNames();

        boolean addG = false;
        for (String name : colNames) {
            if (addG) {
                sql.append(" , ");
                sqlParam.append(" , ");
            } else {
                addG = true;
            }
            sql.append(name);
            sqlParam.append(" ? ");
        }

        value_.setStrType(DBInValue.SVC_INSERT);
        value_.setSQLID(sql + " ) values ( " + sqlParam + " )");
        value_.setUpParameter(iParameter);
System.out.println("SQLID=="+value_.getSQLID());
System.out.println("iParameter=="+iParameter);
        return execute(value_);
    }

    public DBOutValue update (String sqlWhere) throws Exception {
        StringBuffer sql = new StringBuffer();

        // delete
        sql.append(" update ");
        // from
        sql.append(" " + this.getName() + " ");
        // set
        sql.append(" set ");

        boolean addG = false;
        JMMap paramters = new JMMap();
        JMUtility.reflectIntoJMMap(entity_, paramters);
        Iterator it = paramters.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry mpField = (Map.Entry) it.next();
            if (!JMCheck.isNull(mpField.getValue())) {
                if (addG) {
                    sql.append(" , ");
                } else {
                    addG = true;
                }
                sql.append(mpField.getKey() + " = " + "'" + mpField.getValue() + "'");
            }
        }

        if (!JMCheck.isNull(sqlWhere)) {
            sql.append(" where " + sqlWhere);
        }

        value_.setStrType(DBInValue.SVC_UPDATE);
        value_.setSQLID(sql.toString());
System.out.println("update=="+sql);
        return execute(value_);
    }

    public DBOutValue update (JMEntity oldEntity) throws Exception {
        StringBuffer sql = new StringBuffer();

        // delete
        sql.append(" update ");
        // from
        sql.append(" " + this.getName() + " ");
        // set
        sql.append(" set ");

        boolean addG = false;
        JMMap paramters = new JMMap();
        JMUtility.reflectIntoJMMap(entity_, paramters);
        Iterator it = paramters.entrySet().iterator();
        //获得set 数据
        while (it.hasNext()) {
            Map.Entry mpField = (Map.Entry) it.next();
            if (!JMCheck.isNull(mpField.getValue())) {
                if (addG) {
                    sql.append(" , ");
                } else {
                    addG = true;
                }
                sql.append(mpField.getKey() + " = " + "'" + mpField.getValue() + "'");
            }
        }

        //获得where条件
        if (oldEntity != null) {
//            JM2DArray dataSource = new JM2DArray();
//            JMUtility.reflectIntoJM2DArray(oldEntity, dataSource, -1);
//            JMVector<String> colnames = dataSource.getColNames();
//            addG = false;
//            for (int i = 0; i < colnames.size(); i++) {
//                if (!JMCheck.isNull(dataSource.getStringValue(0, i))) {
//                    if (addG) {
//                        sql.append(" and ");
//                    } else {
//                        addG = true;
//                        sql.append(" where ");
//                    }
//                    sql.append(colnames.get(i) + " = " + "'" + dataSource.getStringValue(0, i) + "'");
//                }
//            }
            String sqlWhere = getSQLWhere();
            if (!"".equals(sqlWhere)) {
                sql.append(" where " + sqlWhere);
            }
        }
        value_.setStrType(DBInValue.SVC_UPDATE);
        value_.setSQLID(sql.toString());
System.out.println("update=="+oldEntity);
System.out.println("update=="+sql);
        return execute(value_);
    }

    public DBOutValue delete () throws Exception {
        StringBuffer sql = new StringBuffer(" delete from " + this.getName() + " ");
        /////////////////////////////////////////
        StringBuffer sqlWhere = new StringBuffer();
        boolean addG = false;
        JMMap paramters = new JMMap();
        JMUtility.reflectIntoJMMap(entity_, paramters);
        Iterator it = paramters.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry mpField = (Map.Entry) it.next();
            if (!JMCheck.isNull(mpField.getValue())) {
                if (addG) {
                    sqlWhere.append(" and ");
                } else {
                    addG = true;
                }
                sqlWhere.append(mpField.getKey() + " = " + "'" + mpField.getValue() + "'");
            }
        }
        if (addG) {
            sql.append(" where " + sqlWhere);
        }

        value_.setStrType(DBInValue.SVC_DELETE);
        value_.setSQLID(sql.toString());
System.out.println("delete=="+sql);
//        if(true){
//            return new DBOutValue();
//        }
        return execute(value_);
    }

    public DBOutValue delete (String where) throws Exception {
        StringBuffer sql = new StringBuffer(" delete from " + this.getName() + " ");
        if (!JMCheck.isNull(where)) {
            sql.append(" where " + where);
        }

        value_.setStrType(DBInValue.SVC_DELETE);
        value_.setSQLID(sql.toString());

        return execute(value_);
    }

    // //////////////////////////////////////////////////////////////////////////////
    /**
     * SQL 运行
     *
     * @param inValue
     *            DBInValue
     * @return DBOutValue
     * @throws Exception
     */
    private synchronized DBOutValue execute (DBInValue inValue) throws Exception {

        conntion_ = JMDBOConntionCall.getInstance();
        conntion_.setSQLFree(true);
        // SQL 运行
        JMDBOOutKeyValue _result = conntion_.inVoker(inValue);
        DBOutValue result = new DBOutValue();
        result.setResult(_result.getResult());
        result.setResultCode(_result.getResultCode());
        result.setResultCount(_result.getResultCount());
        result.setResultData(_result.getResultData());
        result.setResultMessage(_result.getResultMessage());
        return result;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -