国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

nodejs環境使用Typeorm連接查詢Oracle數據

2024-08-29 13:28:39
字體:
來源:轉載
供稿:網友

首先是typeorm的官方地址,

國內有人翻了中文版,不保證時效性

?通過npm安裝下列包:

typeorm //typeorm連接數據庫 @types/node //類型系統 typescript //ts基礎 oracledb //oracle基礎 ts-node //nodejs編譯運行ts的工具;

?根路徑配置:

package.json //項目依賴、腳本、描述等
tsconfig.json //ts編譯設置
{ "compilerOptions": {  "module": "commonjs",  "noImplicitAny": true,  "removeComments": true,  "preserveConstEnums": true,  "sourceMap": true,  "outDir": "./dist",  "emitDecoratorMetadata": true,  //typeorm特需  "experimentalDecorators": true  //typeorm特需 }, "include": [  "src/**/*" ], "exclude": [  "node_modules",  "**/*.spec.ts" ]}

ormconfig.json //數據庫連接參數

{ "type": "oracle", "host": "10.16.2.41", "port": 1521, "username": "admin", "password": "admin", "sid": "ORCL", "synchronize": true, "logging": true, "entities": [  "src/entity/**/*.ts" ], "migrations": [  "src/migration/**/*.ts" ], "subscribers": [  "src/subscriber/**/*.ts" ]}

.vscode配置:launch.json ,主要配置vscode在debug時由ts編譯所得的js路徑,此項與項目勿關,只為了方便調試

{ "name": "Current TS File", "type": "node", "request": "launch", "program": "${workspaceRoot}//node_modules//ts-node//dist//bin.js", "args": [  "${relativeFile}" ], "cwd": "${workspaceRoot}", "protocol": "inspector"}

?編寫主體:

根路徑下創建/編輯index.ts(名字可自定義),配置package中start腳本命令為ts-node index.ts,

import "reflect-metadata";import {createConnection} from "typeorm";import {xxx} from "./src/entity/xxx";  //引入數據表結構映射文件createConnection().then(async connection => {  //連接參數為空時自動按照路徑下ormconfig.json信息連接 /*let a = await connection.query(  `SELECT * FROM xxx` ); *///直接使用原生sql語句查詢  let a = await connection.manager.find(xxx)  //使用連接器查詢 connection.manager console.log("result: ", a);}).catch(error => console.log(error));

 在src/entity/下構建數據表實體結構xxx.js,格式參考官網

 在cmd根路徑運行npm start,或使用vscode調試

 至此,我們已經成功使用typeorm連接到了Oracle數據庫,若要構成完整的后端只需添加中間件等等

?與sequelize的差異

從Sequelize轉移到typeorm,是因為sequelize官方不支持連接Oracle

typeorm像名字中描述的那樣,是個使用typescript編寫的、類型系統非常完整的數據庫關系映射,放張數據類型截圖:

 這還是js嗎?當然,如此完整的類型系統得益于typescript,我們也可以在構建時酌情使用類型聲明,因為它不是必須的(本質仍是js)

 很多類型都可以使用js原生類型+長度代替,是否使用專用類型聲明取決于實際需求

 根據數據庫自動生成/更新映射文件腳本會相對復雜

 typescript也是初次接觸,文章只是通過短短幾星期的摸索得來,內容難免有誤,若有錯誤還請點撥,謝謝

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 时尚| 广德县| 吉首市| 五原县| 湖口县| 章丘市| 南靖县| 澄江县| 北安市| 鹿邑县| 富顺县| 鹤庆县| 墨江| 晴隆县| 崇阳县| 阳信县| 高青县| 巫溪县| 梨树县| 普兰店市| 玉门市| 万安县| 康马县| 宜良县| 汽车| 凌源市| 长丰县| 平阴县| 宿州市| 蓬莱市| 屏边| 襄樊市| 江西省| 阿图什市| 泽普县| 梅州市| 石屏县| 临沧市| 称多县| 临沧市| 雷州市|