atitit.新增编辑功能 跟orm的实现 attilax p31

1. 流程的实现 1

2. view的实现(dwr) 1

3. 获取表结构 1

4. grep filt req params 2

5. 转换成个atiorm map 3

6. 转换成个sql 4

7. 参考 4

1. 流程的实现

传统的orm的问题::不能动态insert...  myeclipse到是容易的...要是eclispe走麻烦的兰...

在说,cant 动态添加字段,要同步修改domain文件...

所以,atiorm 使用表格结构来做orm不走ok兰???

获得req参数,组成对象...

过滤table不存在的字段...

转换为sql

add/update的实现不在ui上指定,使用模式,,通过oid来有判断力的add还是edit

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. view的实现(dwr)

隐藏控件_meth=orm

在的控件都是对象 fld

3. 获取表结构

位置:wechat4propty

public class DbX {

/**

@author attilax 老哇的爪子

@since   p31 j_o_53

*/

public static List getColsList(Connection con, String table) {

List li=new ArrayList();

// TODO Auto-generated method stub

String tableName=table;

DatabaseMetaData dbmd;

try {

dbmd = con.getMetaData();

} catch (SQLException e2) {

// TODO Auto-generated catch block

e2.printStackTrace();

throw new RuntimeException(e2);

}

ResultSet rs;

try {

rs = dbmd.getColumns(con.getCatalog(),   "%",   tableName,   null);

} catch (SQLException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

throw new RuntimeException(e1);

}

try {

while(rs.next()) {

String columnName = rs.getString("COLUMN_NAME");

li.add(columnName);

//   String columnType = rs.getString("TYPE_NAME");

//   int datasize = rs.getInt("COLUMN_SIZE");

//   int digits = rs.getInt("DECIMAL_DIGITS");

//   int nullable = rs.getInt("NULLABLE");

//   System.out.println(columnName+" "+columnType+" "+datasize+" "+digits+" "+

//     nullable);

// }

}

} catch (SQLException e) {

e.printStackTrace();

throw new RuntimeException(e);

}

return li;

}

4. grep filt req params

/**

* @author attilax 老哇的爪子

* @since p31 h_43_3

*/

private Map filtField(Map m) {

JSONObject metadata = JSONObject.fromObject(m.get("_metadata"));

String table = (String) metadata.get("table");

Connection conn = (Connection) core.retry3(new Closure() {

@Override

public Object execute(Object arg0) throws Exception {

Connection conn2 = AaaCfg.IocX.getBean(Connection.class);

boolean b = DbX.checkConn(conn2);

if (b)

return conn2;

else

throw new RuntimeException(" conn is close maybe ");

}

}, new errEventProcess() {

@Override

public Object execute(Object arg0) throws Exception {

// TODO Auto-generated method stub

return null;

}

}, "c:\\getconn");

List li = DbX.getColsList(conn, table);

Map m2 = Mapx.grep(m, li);

return m2;

}

5. 转换成个atiorm map

/**

* @author attilax 老哇的爪子

* @since p31 h_37_2

*/

protected Map convert2atiormMap(Object arg0) {

Map m = (Map) arg0;

Map m_filted_fld = filtField(m);

JSONObject metadata = JSONObject.fromObject(m.get("_metadata"));

Map m2 = new HashMap();

m2.put("datatype", metadata.get("table"));

m2.put("op", metadata.get("op"));

m2.put("field", m_filted_fld);

return m2;

}

6. 转换成个sql

Command.reg("orm", new Closure2() {

@Override

public Object execute(Object arg0) {

Map m2 = convert2atiormMap(m);

Object sql = new OrmX().convert2sql(core.toJsonStrO88(m2));

7. 参考

java 获取表结构 - HouYing - 博客频道 - CSDN.NET.htm

atitit.新增编辑功能 跟orm的实现 attilax p31的更多相关文章

  1. Editable DataGrid 实现列表新增编辑功能

    今天在开发一个功能时候,需要直接在列表实现新增.编辑等功能.于是查看easyui 相关文档,找到相关解决办法. easyui的datagrid支持可编辑功能.它使用户能够向数据网格中添加一个新行.用户 ...

  2. ABBYY FineReader 15 新增编辑表格单元格功能

    ABBYY FineReader 15(Windows系统)新增编辑表格单元格功能,在PDF文档存在表格的前提下,可将表中的每个单元格作为单独的文字块进行单独编辑,单元格内的编辑不会影响同一行中其他单 ...

  3. IOS 表视图(UITableVIew)的使用方法(7)表视图的编辑功能(拖拉调整排序位置)

    除了每个单元行左边的删除和新增图标,UITableView还支持在单元行的右侧显示一个供用户拖拉调整排序位置的控件. 不过如果要显示此控件,UITableView的数据源需要实现以下的方法. -(vo ...

  4. Asp.Net MVC +EntityFramework主从表新增编辑操作的实现(删除操作怎么实现?)

    Asp.Net MVC +EntityFramework主从表新增编辑操作的实现 对于MVC中同时对主从表的表单操作在网上现有的解决很少,而这样的操作在做业务系统中是经常为遇到的.我在网上搜索了很久都 ...

  5. Atitit 翻页功能的解决方案与版本历史 v4 r49

    Atitit 翻页功能的解决方案与版本历史 v4 r49 1. 版本历史与分支版本,项目版本记录1 1.1. 主干版本历史1 1.2. 分支版本  项目版本记录.1 2. Easyui 的翻页组件2 ...

  6. Atitit截屏功能的设计解决方案

    Atitit截屏功能的设计解决方案 自己实现.... 使用快捷键.. 弹出自己的win,,背景是屏幕快照 点击鼠标光标变成十字状态 出现截屏窗口调整截屏窗口位置与大小 释放鼠标,三个btn,,  复制 ...

  7. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

  8. Atitit.在线充值功能的设计

    Atitit.在线充值功能的设计 1. 流程1 2. Js sdk api   增加订单1 3. Java api 返回servlet处理1 3.1. 返回网址的本地host测试2 1. 流程 本地增 ...

  9. c# 框架学习(nop )总结-------编辑功能

    一.在js中配置列: <script> $(document).ready(function () { $("#enterprise-grid").kendoGrid( ...

随机推荐

  1. Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文实现了一个后台由Spring+Mybatis+SpringMVC组成,分页采用Pag ...

  2. 3 cocos2dx 3.0 源码分析-mainLoop详细

    简述:   我靠上面图是不是太大了, 有点看不清了.  总结一下过程: 之前说过的appController 之后经过了若干初始化, 最后调用了displayLinker 的定时调用, 这里调用了函数 ...

  3. 如何设置Win7不待机 Win7进入待机状态会断网的解决方法

    电脑一旦进入待机状态后,会断网,应用将停止运行,因此需要设置电脑不待机来解决,这种情况需要挂一些游戏或者下载应用的时非常实用,下面就与大家分享下电脑不待机的设置方法,感兴趣的朋友可以参考下 有时候我们 ...

  4. 10723 Cyborg Genes (LCS + 记忆化搜索)

    Problem F Cyborg Genes Time Limit 1 Second September 11, 2132. This is the day that marks the beginn ...

  5. 关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error

    http://blog.sina.com.cn/s/blog_9015f3230101bbef.html 关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : f ...

  6. 10个CSS简写技巧让你永远受用

    转自:http://blog.bingo929.com/10-css-shorthand-tips.html 前言: CSS简写就是指将多行的CSS属性声明化成一行,又称为CSS代码优化.CSS简写的 ...

  7. Oracle spatial 空间修正函数(SDO_UTIL.RECTIFY_GEOMETRY)

    Oracle spatial有个空间修正函数SDO_UTIL.RECTIFY_GEOMETRY,它可以修复以下可能:a.重复节点 b.自相交 c.坐标串朝向不正确. 该函数的构造函数格式: SDO_U ...

  8. VS选项中没有C#相关设置选项?

    在VS中,行号的设置在工具-选项-文本编辑器,可里面没有VS,我还以为是之前卸载了SP1后造成的. 原来是因为,VS默认环境设置的VB,选项对话框左下角有"显示所有设置"的复选框, ...

  9. 虚拟机chrome os 没有可用网络错误

    从http://chromeos.hexxeh.net/ 下载了一个chrome os的VM版本的,在VM9上打开运行,一直提示没有可用网络 解决方案 查看虚拟机的网络设置设置为 NAT方式 查看主机 ...

  10. Oracle中CBO优化器简介

    Oracle中CBO优化器简介 Oracle数据库中的优化器是SQL分析和执行的优化工具.它负责制定SQL的执行计划,也就是它负责保证SQL的执行计划的效率最高,比如优化器决定Oracle以什么样的方 ...