my salesforce

来源:互联网 发布:烈火战神 源码分析 编辑:程序博客网 时间:2024/05/17 21:06

        闲暇之时,自己做了个小东东,模仿salesforce的元数据模型平台。国内类似的平台eeplat,国外的honeycrm都做的很棒,俺一届程序猿,一个人的力量有限,期待大家一起来做这个东东。

      程序的主框架如下:
 
 界面展示:
1、整体界面
 



2、自定义对象
 
3、字段
A、字段列表
 
B1、新建字段,选择字段类型
 
B2、字段相关信息
 
B3、字段配置后的新建界面
 
4、显示界面
 
5、视图界面
 

 

部分代码:

SObject.java

package com.passionguy.base.sObject;/** * 数据对象,用于CRUD操作 *  * @author gongxinyi * @createtime 上午10:02:24 Email:gongxinong@gmail.com */public class SObject {/** * 记录ID */private int id;/** * 物理表名 */private String ObjectName;/** * 字段 */private Fields[] fields;/** * @return the id */public int getId() {return id;}/** * @param id *            the id to set */public void setId(int id) {this.id = id;}/** * @return the objectName */public String getObjectName() {return ObjectName;}/** * @param objectName *            the objectName to set */public void setObjectName(String objectName) {ObjectName = objectName;}/** * @return the fields */public Fields[] getFields() {return fields;}/** * @param fields *            the fields to set */public void setFields(Fields[] fields) {this.fields = fields;}}


 ClsAjax.java

package com.passionguy.support.dao;import java.sql.SQLException;import java.util.HashMap;import java.util.Map;import com.passionguy.base.Util.CommonUtil;import com.passionguy.base.sObject.SObject;import com.passionguy.base.sObject.SaveResult;public class ClsAjax {public static IIbatisDAO ibatisDaoImpl;/** * @param ibatisDaoImpl *            the ibatisDaoImpl to set */public void setIbatisDaoImpl(IIbatisDAO ibatisDaoImpl) {this.ibatisDaoImpl = ibatisDaoImpl;}/** * 执行原生sql *  * @param sql */public static Object execute(String sql) throws Exception {Object object = null;object = ibatisDaoImpl.excute(sql);return object;}/** * 保存数据 * @param mobject * @throws Exception */public static void SaveData(SObject[] mobject) throws Exception{for (int i = 0; i < mobject.length; i++) {if(mobject[i].getId()==-1){InsertData(mobject);}else{UpdateData(mobject);}}}/** * 更新数据 *  * @param mobject * @return * @throws SQLException */public static SaveResult[] UpdateData(SObject[] mobject) throws Exception {SaveResult[] msaveresult = new SaveResult[mobject.length];for (int i = 0; i < mobject.length; i++) {int i_success = 1;String sql = createUpdateSql(mobject[i]);Map<String, String> params = new HashMap();params.put("sql", sql);try {ibatisDaoImpl.excute(sql);} catch (Exception e) {i_success = 0;throw e;}msaveresult[i] = new SaveResult();msaveresult[i].setId(mobject[i].getId());msaveresult[i].setSuccess(i_success == 1 ? true : false);}return msaveresult;}/** * 插入数据 *  * @param mobject * @return * @throws SQLException */public static SaveResult[] InsertData(SObject[] mobject) throws Exception {SaveResult[] msaveresult = new SaveResult[mobject.length];for (int i = 0; i < mobject.length; i++) {int i_success = 1;String sql = createInsertSql(mobject[i]);Map<String, String> params = new HashMap<String, String>();params.put("sql", sql);try {ibatisDaoImpl.insert("dboperate.execute", params);} catch (Exception e) {i_success = 0;e.printStackTrace();throw e;}msaveresult[i] = new SaveResult();msaveresult[i].setId(mobject[i].getId());msaveresult[i].setSuccess(i_success == 1 ? true : false);}return msaveresult;}/** * 删除数据 * @param DeleteIds 删除id * @param tableName 表名 * @return * @throws Exception */public static SaveResult[] DeleteData(String[] DeleteIds, String tableName) throws Exception {SaveResult[] msaveresult = new SaveResult[DeleteIds.length];for (int i = 0; i < DeleteIds.length; i++) {int i_success = 1;String sql = "DELETE FROM " + tableName + " WHERE id='"+ DeleteIds[i] + "'";Map<String, String> params = new HashMap<String, String>();params.put("sql", sql);try {ibatisDaoImpl.delete("dboperate.execute", params);} catch (Exception e) {i_success = 0;e.printStackTrace();throw e;}msaveresult[i] = new SaveResult();msaveresult[i].setId(Integer.parseInt(DeleteIds[i]));msaveresult[i].setSuccess(i_success == 1 ? true : false);}return msaveresult;}protected static String createUpdateSql(SObject object) {StringBuffer sql = new StringBuffer();sql.append("UPDATE " + object.getObjectName() + " SET ");for (int i = 0; i < object.getFields().length; i++) {sql.append(i == 0 ? " " : " , ");sql.append(object.getFields()[i].getFieldname());sql.append(" = ");sql.append(CommonUtil.type2sql(object.getFields()[i].getFieldvalue()));}sql.append(" WHERE id=" + object.getId());return sql.toString();}protected static String createInsertSql(SObject object) {StringBuffer sql = new StringBuffer();StringBuffer field = new StringBuffer();StringBuffer value = new StringBuffer();sql.append("INSERT INTO " + object.getObjectName() + " ");field.append(" ( ");value.append(" ( ");for (int i = 0; i < object.getFields().length; i++) {field.append(i == 0 ? " " : " , ");field.append(object.getFields()[i].getFieldname());value.append(i == 0 ? " " : " , ");value.append(CommonUtil.type2sql(object.getFields()[i].getFieldvalue()));}field.append(" ) ");value.append(" ) ");sql.append(field.toString());sql.append(" values ");sql.append(value.toString());return sql.toString();}}


 

原创粉丝点击