zoukankan      html  css  js  c++  java
  • 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;

     

    }

     

    }

     

  • 相关阅读:
    C++ 在名称空间中使用using声明和using编译指令
    jsp 之 解决mysql不是内部或外部命令问题
    一个男人关心的东西决定了他的层次 我在关心什么呢?
    初学安卓开发随笔之 启动活动的优化 用法
    初学安卓开发随笔之 Menu、toast 用法、活动的四种启动模式 以及 一个方便的Base活动类使用方法
    初学安卓开发随笔之 Intent 用法
    Python—数据类型之列表(List)
    Python—数据类型之字符串(String)
    Python—数据类型之数字(Number)
    斯里兰卡、马尔代夫旅游攻略
  • 原文地址:https://www.cnblogs.com/attilax/p/5223410.html
Copyright © 2011-2022 走看看