你的位置:首页 > 数据库

[数据库]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;

 

}

 

}