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

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:[email protected]

转载请注明来源: 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

时间: 2024-11-03 22:10:50

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

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

今天在开发一个功能时候,需要直接在列表实现新增.编辑等功能.于是查看easyui 相关文档,找到相关解决办法. easyui的datagrid支持可编辑功能.它使用户能够向数据网格中添加一个新行.用户也可以更新一个或多个行. 下面是我在项目中的实现代码: 第一步:引用 easyui.css jquery-1.8.1.min.js jquery.easyui.min.js 第二步:Html和Javascript代码 <h2>Editable DataGrid Demo</h2> &l

sharepoint 2016 学习系列篇(16)-自定义列表应用篇-(5)列表的快速编辑功能

平时我们都是通过新增按钮进行添加数据,其实还有一种更加方便使用,而且快捷的方式录入数据,就是列表的快速编辑功能,这里我们来演示下,这个功能的好用之处. 打开前面创建好的用户信息表,点击快速编辑(edit)按钮, 进入快速编辑模式,然后选中一行数据,当然如果有多行数据,也可以选择多行,接下来用键盘快捷键Ctrl+C进行复制 会弹出一个提示框,点击允许访问 选中列表的空白行 用快捷键Ctrl+V进行粘贴. 我们发现,数据已经新增进去了,这里还可以对每个单元格进行修改,和Excel的操作方式很相识,录

公众号文章新增语音功能 让声音拉近粉丝的距离

罗胖的公众号比较独特,每天发一条语音,吸引了一大批粉丝.也许我们没有很多题材每天一段补脑语音,但我们可以在图文消息中添加一小段语音问候,拉近和关注用户的距离.没错,公众号文章新增语音功能就能实现上述功能. 公众号文章新增语音功能,可在文章中添加录制好的语音,且突破一分钟限制.暂时只面向获得微信认证或拥有原创功能的帐号公测. 1. 运营者可以在编辑图文消息时,在正文中添加语音.一个图文消息支持添加一个语音. 2. 可从素材库中添加已有语音,或新建语音. 3. 用户可以在文章中收听语音内容,可控制播

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

Asp.Net MVC +EntityFramework主从表新增编辑操作的实现 对于MVC中同时对主从表的表单操作在网上现有的解决很少,而这样的操作在做业务系统中是经常为遇到的.我在网上搜索了很久都没有发现很完整的实例或非常好的解决方案,所以我很想和大家讨论一下又什么更好的解决方案. 一旦有更好的方式我会把它集成到模板中实现自动生成.所以很希望得到大家的帮助.在这里我先抛砖引玉了. Demo代码在 https://github.com/neozhu/MVC5-Scaffolder 下载 先看一

Dynamics 365 for CRM: Sitemap站点图的可视化编辑功能

Dynamics 365 for CRM 提供了Sitemap站点图的可视化编辑功能 在之前的所有版本中,我们只能通过从系统中导出站点图的XML进行编辑后再导入(容易出错),或使用第三方的Sitemap编辑工具进行编辑(非常方便). 在Dynamics 365 for CRM 中原生地提供了站点图的可视化编辑功能,非常强大方便: 1.在默认解决方案或自定义解决方案的"客户端扩展"中,找到"站点地图"记录:如果没有则需要点击"添加现成",添加&qu

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

一.在js中配置列: <script> $(document).ready(function () { $("#enterprise-grid").kendoGrid({ dataSource: { type: "json", transport: { read: { url: "@Html.Raw(Url.Action("List", "Individual"))", type: "

JEECG 商业版本最近新增什么功能啦?

JEECG 商业版本最近新增什么功能啦? 2014-12-18 JEECG JEECG jeecg增加新的功能啦!!! 1.流程设计器 2.集成工作流引擎activit,智能化封装,在线配置表单,在线设计流程,流程和表单挂接,给任意节点配置任意表单 3.数据权限(列表级,字段级) 4.国际化 5.多数据源 6.消息中间件(微信推送,短信,邮件等) 7.支持多组织机构,多公司 8.poi工具化 9.系统更稳定,功能更完善 阅读原文举报

JeeWx 商业版本最近新增什么功能啦?

JeeWx 商业版本最近新增什么功能啦? 2014-12-18 jeecg JEECG jeewx开发新功能 一.微信墙 此功能可以设置属于该公共号的微信墙,在微信客户端上输入微信墙即可进入微信墙模式,输入退出微信墙即可退出该模式,效果图如下: 用户可以通过平台界面进入微信墙查看效果 二.微签到 三.竞选投票PK 用户可以通过微信的竞选投票PK设置竞选投票,在客户端就可以显示竞选投票的 四.摇一摇 此功能增加用户与公众号的互动活动,也属于摇奖活动中的一种,用户输入进入摇一摇界面,摇一摇即可 五.

微信公众平台新增卡券功能 配合微信6.0卡包功能

今天早些时候,微信6.0发布更新,其中一个新增功能是微信卡包功能,如果商家没有发行电子打折卡.优惠券,那微信卡包就形同虚设了,微信公众平台新增卡券功能势在必行.傍晚获得的消息,公众平台发布新增卡券功能的公告,具体内容如下: 公众平台新增卡券功能 卡券功能,是公众平台向有投放卡券需求的公众号提供的推广.经营分析的整套解决方案,是“微信卡包”的重要组成部分,是连接商户与消费者的新渠道. 通过资质审核的商户,拥有卡券制作.管理.投放和数据分析的整套能力.目前支持的卡券类型有代金券.折扣券.礼品券.团购