之前寫過乙個 sql 文字轉換為 c++ sqlite 資料庫介面的指令碼
但是發現, 只要換一種資料庫, 就需要專門為這個資料庫寫乙個指令碼, 但是明明都是一樣的東西, 所以就想到把介面抽象出來, 然後只寫一次指令碼, 如果要更換資料庫, 只需要寫一下按照定義的資料庫介面實現虛函式, 就可以直接使用指令碼生成的介面 (我已經寫了兩個驅動了, 分別是 mysql 和 sqlite 的 -> 這兩個驅動直接依賴的官方 api)
介面定義:
mysql 驅動:
sqlite 驅動:
測試原始碼:
最重要的就是下面兩句
sql::isql *sql = new sql::csqlitesql();
user_info::cdbhandler dbhandler("test.db", sql);
第一行: sql::csqlitesql() 就是 我寫的sqlite的驅動
第二行: 表示將 驅動註冊到 介面類中 (其中 user_info::cdbhandler 就是指令碼生成的介面類)
例: 新增使用者
user_info::cadduserinfoinput input;
input.setusername("jake");
input.setuserage(30);
dbhandler.adduserinfo(input);
指令碼所在位置:
執行方式:
3. 進入到 , 這個目錄下面有乙個 example
執行:
python main.py -f ./example_sql/user_info.sql -ho ./example_sql/output/include -co ./example_sql/output/source -create
說明:
-f: 後面接 *.sql 的檔案路徑
-ho: 指定標頭檔案的資料目錄
-co: 指定原始檔的資料庫目錄
-create/-update: 建立/更新
生成sql指令碼
生成資料庫指令碼 sql2000企業管理器 右鍵要匯出的資料庫 所有任務 生成sql指令碼 常規 裡選擇 生成全部物件指令碼 在指令碼檔案中包含說明性標題 選上 設定格式 裡,將 包含擴充套件屬性 選上 選項 中,將 表指令碼選項 中的內容全部選擇上 選項 中,安全性選項 是決定是否要包含建立資料庫...
sql語句生成sql指令碼
sql語句有一種特別的用法,相信很多人還不知道,我也是後來學到的,因此拿來跟大家分享下 生成sql指令碼 舉個例子 select 1 from student 如果表中有資料的話,你就會發現查詢的結果會是 根據這個原理,我們可以用來生成sql指令碼,以下就是例項 例項1 乙個簡單的例子 select...
SpringBoot生成sql指令碼
最近專案新增加了乙個匯入匯出的功能,起因是因為專案需要遷移環境,專案的業務需要所有的頁面都是可配置的,當我在測試環境配置好一套頁面,並且測試無誤後,需要把我配置好的這套頁面的資料遷移到生產環境上,由此提出了這個需求。當然這個功能也並不是很難做。public void outputsql throws...