atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性
atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性
1. 新特性如下
支持生成sql在无数据库连接的情况下
2. Orm设计
主要的俩个以来service如下
@Inject
Dsl2sqlService dsl2sqlSvr;
@Inject
DBX dbSvr;
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
3. code
/atiPlatf_bet/src/com/attilax/store/OrmStoreService.java
package com.attilax.store;
import java.util.List;
import java.util.Map;
import com.attilax.db.DBX;
import com.attilax.io.filex;
import com.attilax.ioc.IocXq214;
import com.attilax.json.AtiJson;
import com.attilax.lang.MapX;
import com.attilax.orm.AOrm;
import com.attilax.orm.Aorm4view;
import com.attilax.orm.View;
import com.attilax.sql.Dsl2sqlService;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.inject.Inject;
public class OrmStoreService extends StoreService {
public static void main(String[] args) {
System.setProperty("apptype", "bet");
OrmStoreService ormSvr = IocXq214.getBean(OrmStoreService.class);
Map m = Maps.newLinkedHashMap();
m.put("$table", "orderView");
m.put("$tabletype", "view");
m.put("$view_store_path","com/attilax/order");
m.put("$op", "insert");
m.put("good_id","2005");
m.put("order_id",filex.getUUidName());
List<String> insertSql = ormSvr.insertSql(m);
System.out.println( AtiJson.toJson( insertSql));
System.out.println("--f1");
}
@Inject
Dsl2sqlService dsl2sqlSvr;
@Inject
DBX dbSvr;
public List<String> insertSql(Map m) {
List<String> li = Lists.newArrayList();
if (m.get("$tabletype") != null && m.get("$tabletype").equals("view")) {
String[] tabs = new View(m.get("$table"), m.get("$view_store_path"))
.getTables();
for (String tab : tabs) {
Map m2 = MapX.clone(m);
m2.put("$table", tab);
String s = get_insert_singleTable_sql(m2);
li.add(s);
}
return li;
}
return li;
}
public void insert(Map m) {
List<String> li = insertSql(m);
for (String sql : li) {
dbSvr.execSql(sql);
}
}
public String get_insert_singleTable_sql(Map m) {
String sql = dsl2sqlSvr.dsl2sql(m);
return sql;
}
}
atitit.atiOrmStoreService 框架的原理与设计 part1 概述与新特性的更多相关文章
- atitit. web组件化原理与设计
atitit. web组件化原理与设计 1. Web Components提供了一种组件化的推荐方式,具体来说,就是:1 2. 组件化的本质目的并不一定是要为了可复用,而是提升可维护性. 不具有复用 ...
- Atitit.ati dwr的原理and设计 attilax 总结 java php 版本
Atitit.ati dwr的原理and设计 attilax 总结 java php 版本 1. dwr的优点相对于ajax来说..1 2. DWR工作原理1 3. Dwr的架构2 4. 自定义dwr ...
- Atitit 发帖机系列(8) 词法分析器v5 版本新特性说明)
Atitit 发帖机系列(8) 词法分析器v5 版本新特性说明) v5 增加对sql单引号的内部支持.可以作为string 结构调整,使用递归法重构循环发..放弃循环发. V4 java dsl词 ...
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能 1. MySQL 5.6 5 大新特性1 1.1. 优化器的改进1 1.2. InnoDB 改进1 1.3. 使用 ...
- Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能
Atitit.mysql 5.0 5.5 5.6 5.7 新特性 新功能 1. MySQL 5.6 5 大新特性1 1.1. 优化器的改进1 1.2. InnoDB 改进1 1.3. 使用 ...
- JVM的运行原理以及JDK 7增加的新特性(二)
JVM结构 Java编写的代码会按照下图的流程来执行 类装载器装载负责装载编译后的字节码,并加载到运行时数据区(Runtime Data Area),然后执行引擎执行会执行这些字节码. 类加载器(Cl ...
- Atitit.eclipse 4.3 4.4 4.5 4.6新特性
Atitit intellij idea的使用总结attilax 1. ideaIC-2016.2.4.exe1 1.1. Ij vs eclipse市场份额1 1.2. Ij的优点(方便的支持gro ...
- JVM的运行原理以及JDK 7增加的新特性(一)
虚拟机(Virtual Machine) JRE是由Java API和JVM组成的.JVM的主要作用是通过Class Loader来加载Java程序,并且按照Java API来执行加载的程序. 虚拟机 ...
- 类的加载、时机、反射、模板设计、jdk7/jdk8新特性(二十六)
1.类的加载概述和加载时机 * A:类的加载概述 * 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化. * 加载 * 就是指将class文 ...
随机推荐
- c++基础学习之函数与参数
1.传值参数 //传值参数 int Abc(int a,int b,int c) { ; } a,b和c是函数Abc 的形式参数formal parameter,类型均为整型.如果在如下语句中调用函数 ...
- 【AC自动机】【矩阵乘法】【等比数列】hdu2243 考研路茫茫——单词情结
题解:http://blog.csdn.net/xingyeyongheng/article/details/10005923 这里采用了二分法求等比数列前n项和. 等比数列前n项和也可以用矩乘快速幂 ...
- Java学习笔记(4)
控制流程语句之---------switch选择判断语句 switch(你的选择) case 值1: 符合条件执行的语句: break: case 值2: 符合条件执行的语句: break: case ...
- Ubuntu 16.04通过APT源安装QUEM虚拟机调试Linux内核
安装: sudo apt-add-repository main sudo apt-get update sudo apt-get install qemu-kvm qemu virt-manager ...
- WebForm页面使用Ajax
AJAX:”Asynchronous JavaScript and XML” 中文意思:异步JavaScript和XML.指一种创建交互式网页应用的网页开发技术.AJAX并非缩写词,而是由Jesse ...
- Swift,循环及判断
1.for循环(执行固定次数的操作) (1)基本数组循环 var a=[1,2,3] for value in a{ print(value) //1 2 3 } (2)自定义循环次数 for i i ...
- js数据加载完成的方法
1.document.onreadystatechange(页面加载完成的方法)配合document.readyState(获取加载状态)使用 document.onreadystatechange= ...
- 关于 modelNameLike 查询无数据
---恢复内容开始--- 1.今天在测试的时候发现 model中的name不能模糊查询. ModelQuery modelQuery = repositoryService.createModelQu ...
- Linux查找并删除重复文件的命令行fdupes工具,dupeGuru图形工具
查了几十个网页,找到这个接近满意的解决方案http://unix.stackexchange.com/questions/146197/fdupes-delete-files-aft... 不过正则里 ...
- struts2设置文件上传大小
利用struts2想要设置或者限制上传文件的大小,可以在struts.xml配置文件里面进行如下配置: <constant name="struts.multipart.maxSize ...