node连接/操作oracle数据库 — oracledb
oracledb模块的基础使用oracledb介绍环境准备node环境以及npm环境oracle环境python环境oracledb的使用oracledb基础项目安装oracledb模块引入oracledb模块oracledb模块基础讲解封装oracledb封装oracle连接封装oracle查询封装oracle断开使用oracledb介绍oracledb是nodejs中一个可以连接和操作o...
oracledb模块的基础使用
oracledb
介绍
oracledb是nodejs中一个可以连接和操作oracle数据库的模块
环境准备
node环境以及npm环境
这是一个nodejs的模块,所以你需要有一个node以及npm的环境才可以运行程序,推荐使用比较新的node版本( > 8.0.0)
nodejs下载地址:点这里
nodejs安装教程:点这里
oracle环境
需要操作的是oracle数据库,所以你需要一个oracle数据库的本地环境
oracle下载地址:点这里
oracle安装教程:oracle的安装教程网上很多,版本不同,安装过程也不一样,大家按自己所需去查相关教程
python环境
要使用oracledb模块,除了上面的环境,你还需要一个python环境
python下载地址:添加链接描述
python安装教程:添加链接描述
oracledb的使用
oracledb基础
项目安装oracledb模块
npm install oracledb
引入oracledb模块
const Oracledb = require('oracledb)
oracledb模块基础讲解
这里仅讲解基础的使用,有兴趣的童鞋可以自行去了解一下oracledb的详细用法
连接oracle数据库
//config是连接配置
const config = {
user: "数据库用户名",
password: "数据库密码",
connectString: "数据库ip地址"
}
oracledb.getConnection(config, function(err, conn){
//err是错误
//conn是连接成功返回的连接对象
})
执行sql语句
oracledb.getConnection(config, function(err, conn){
//在连接数据库的回调函数内,调用conn连接对象的execute方法
//sql是sql查询语句
//fun是回调
conn.execute(sql, function(err, result){
//err是错误反馈
//result是执行execute的返回结果
})
})
断开数据库连接
oracledb.getConnection(config, function(err, conn){
//在连接数据库的回调函数内,调用conn连接对象的close方法
//fun是回调
conn.close(function(err){
//err是错误反馈
})
})
封装oracledb
封装可以是oracledb的使用更加的简洁方便
封装oracle连接
首先需要明确的是,连接过程是异步的,所以使用到了promise,在执行数据库连接完成后返回对应的连接对象或者错误信息,使用try catch是为了防止执行oracledb.getConnection过程出现错误导致程序出现错误
const Oracledb = require('oracledb');
function connect(config) {
return new Promise(function (resolve, reject) {
try {
Oracledb.getConnection(config, function (err, conn) {
if (err) {
console.log("oracle数据库连接失败");
resolve({
status: -1,
msg: '数据库连接失败',
detail: err.message
})
return
}
console.log("oracle数据库连接成功");
resolve(conn);
});
} catch (ex) {
console.log("oracle数据库连接出错");
resolve({
status: -1,
msg: '数据库连接出错',
detail: ex||'数据库连接时出现未知原因错误'
})
}
});
}
封装oracle查询
同理,查询的过程也是异步的,因此这里同样使用promise来接收查询返回的结果,execute是conn对象的方法,所以需要将conn对象传入函数内
function execute(conn, sql) {
return new Promise(function (resolve, reject) {
try {
conn.execute(
sql,
function (err, result) {
if (err) {
console.log(err.message)
resolve({
status: -1,
msg: '执行sql语句失败',
detail: err.message
})
return
}
resolve(result)
});
} catch (ex){
console.log('执行execute出错')
resolve({
status: -1,
msg: "执行sql语句出错",
detail: ex||'执行execute发生未知错误'
})
}
})
}
封装oracle断开
连接断开不需要异步,close是conn对象的方法,所以需要将conn对象传入函数内
function doRelease(conn) {
conn.close(
function (err) {
if (err) {
console.log(err.message)
return
}
console.log('oracle数据库断开成功')
});
}
使用
由于connect和execute函数都是异步操作,所以我们在使用的时候建议使用async、await来接收返回的结果
const {
connect,
doRelease,
execute
} = require('./oracledb/oracle')
const ORACLE_CONF = {
user: "xxxx",
password: "xxxx",
connectString: "localhost:1521/orcl" //连接ip格式 ip:端口/数据库名称
}
async function query(config, sql){
// 接收连接对象
let conn = await connect(config)
// 接收查询结果
let data = await execute(conn, sql)
// 关闭连接
doRelease(conn)
console.log(data)
}
let sql = `SELECT * FROM LKTB`
query(ORACLE_CONF, sql)
以上内容都是属于比较基础的使用,有兴趣的小伙伴可以自行去了解oracledb更详细的介绍
更多推荐
所有评论(0)