nodejs环境使用Typeorm连接查询Oracle数据
首先是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也是初次接触,文章只是通过短短几星期的摸索得来,内容难免有误,若有错误还请点拨,谢谢
总结
以上所述是小编给大家介绍的nodejs环境使用Typeorm连接查询Oracle数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
您可能感兴趣的文章:
- oracle 数据库的管理工具 PL/SQL_Developer 的简易使用 与Java 连接并查询显示出数据
- oracle12c JSON数据 使用SQL语句实现多表左外连接 显示无效数据 分页查询
- [DB][ORACLE][统计函数]使用LAG和LEAD函数可以在一次查询中取出同一字段的前N行的数据和后N行的值
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- ios CoreData框架的使用,对上下文数据的增删改查,表与表之间的关联,1对多,1对1,谓词查询,多表连接
- oracle使用子查询插入和修改数据
- 使用sqldeveloper连接到远程的oracle服务器,并执行查询语句
- 使用sp_addlinkedserver 与 sp_addlinkersrvlogin从oracle查询数据
- oracle使用listagg查询电影数据
- 在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的
- .NET中使用ODP(Oracle.DataAccess)连接Oracle数据时出现的异常
- oracle左连接查询出现数据重复
- C#连接Oracle查询数据乱码问题解决
- 使用JDBC连接MySQL数据库--典型案例分析(八)----实现员工数据的分页查询
- Oracle使用游标查询指定数据表的所有字段名称组合而成的字符串
- 怎么使用robomongo查询mongodb(就像用plsql,输入sql语句,查询oracle数据一样)?
- 使用oracle 9i 里的层级查询(Hierarchical Queries)实现树状表结构的递归数据查询
- oracle:unix(linux适用)环境下使用occi远程连接oracle数据库(新人教学版)---2
- 使用join对数据表进行连接查询
- OERR: ORA-12519 客户端连接间歇性失败 使用命令查询oracle错误描述: oerr ora 12519