atitit.atiOrmStoreService 框架的原理與設計 part1  概述與新特性

来源:http://www.cnblogs.com/attilax/archive/2016/02/27/5223410.html
-Advertisement-
Play Games

atitit.atiOrmStoreService 框架的原理與設計 part1 概述與新特性 1. 新特性如下 支持生成sql在無資料庫連接的情況下 2. Orm設計 主要的倆個以來service如下 @Inject Dsl2sqlService dsl2sqlSvr; @Inject DBX d


atitit.atiOrmStoreService 框架的原理與設計 part1  概述與新特性

 

 

1. 新特性如下

支持生成sql在無資料庫連接的情況下

 

 

2. Orm設計

主要的倆個以來service如下

@Inject

Dsl2sqlService dsl2sqlSvr;

@Inject

DBX dbSvr;

作者:: 綽號:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 ) 漢字名:艾龍,  EMAIL:[email protected]

轉載請註明來源: 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;

 

}

 

}

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們在開發項目時,喜歡引入好多的第三方包,大大的方便了我們的開發,但同時,因為android方法總數的限制,不能超過65k,然而呢,隨著我們的開發,65k最終還是會超過,所以,google就給出了這個解決方案,但一直好奇它是內部是怎麼實現的,我們今天就來根據源碼來看看這個包到底做了什麼,怎麼把多個d
  • 機器學習 視頻教程 數據挖掘 實戰 開發 應用 演算法 案例 R語言 Hadoop、Redis、Memcached、MongoDB、Spark、Storm、雲計算、R語言、機器學習、Nginx、Linux、MySQL、Java EE、.NET、PHP
  • Hadoop、Redis、Memcached、MongoDB、Spark、Storm、雲計算、R語言、機器學習、Nginx、Linux、MySQL、Java EE、.NET、PHP Hadoop 視頻教程 大數據 高性能 集群 NoSQL 實戰 權威 入門 安裝
  • SQL優化的最終目的是用戶體驗-在最短時間內讓用戶在頁面數據。因此,執行時間是SQL優化的重要指標。在SQL查詢中,I/O操作最占系統性能的。I/O操作量越大,時間越久。減少I/O操作量是優化SQL的目標。同時,CPU,緩存命中率也很重要。 並不是所有SQL都需要被優化,使用頻率高,性能差的SQL語
  • 關於sqlnet.ora的參數SQLNET.INBOUND_CONNECT_TIMEOUT,它表示等待用戶認證超時的時間,單位是秒,預設值是60秒,如果用戶認證超時了,伺服器日誌alert.log顯示出錯信息"WARNING: inbound connection timed out (ORA-31...
  • Hadoop安裝 Hadoop安裝 Hive元數據三種存儲方式 Derby:hive預設的存儲模式,不可以併發調用hive 本地MySQL 遠程MySQL 採用第二種方式,安裝MySQL,啟動並創建Hive用戶,創建Hive元資料庫 insert into mysql.user(Host,User,...
  • 我們開發了一個會員管理系統,隨著使用的人越來越多,異地備份資料庫就顯得十分重要,萬一硬碟出問題了怎麼辦呢.所以就著手做這個工作. 首先呢,找到了幾個專門用來提供備份資料庫的網站,一年好幾百,好貴.放棄這個方案. 然後想到了辦法,如果備份到百度雲上是不是就很好呢.超大的空間.嘗試了一下,需要分三步:
  • ORACLE的執行計劃分為預估執行計劃和實際執行計劃。其中,你用Toad、PL/SQL Developer、SQL Developer、EXPLAIN PLAN FOR或者SET ATUOTRACE TRACEONLY等獲取的執行計劃都是預估的執行計劃。有時候預估執行計劃和實際執行計劃有很大的差別,...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...