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://blog.csdn.net/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;

     

    }

     

    }

     

  • 相关阅读:
    Android APN开关原理
    HTC Wildfire 闪光灯手电筒的实现方式
    Android Stagefright MPEG4Extractor分析
    Ubuntu 10.10 64bit下使用Android NDK r6编译FFmpeg 0.8.1
    开始IMS学习相关名词和术语(持续更新)
    Ubuntu 下安装代码格式化程序 astyle
    Ubuntu 10.10 x64 安装 ffmpeg tutorial 相关支持库
    关于GradientDrawable的angle属性
    判断SIM卡所属的运营商
    最小生成树算法
  • 原文地址:https://www.cnblogs.com/attilax/p/5963471.html
Copyright © 2011-2022 走看看