• 金仓数据库KingbaseES客户端编程接口指南-Nodejs(3. Nodejs驱动使用说明)


    3. Nodejs驱动使用说明

    3.1. 连接数据库

    使用 Client.connect() 连接数据库。

    const { Client } = require('kb')      /* 导入Nodejs驱动模块 */
    
    /* 实例化Client对象 */
    const client = new Client({
        user: 'SYSTEM',                  /* 用户名 */
        host: '192.168.0.102',           /* 数据库服务器IP */
        database: 'TEST',                /* 要连接的库 */ */ */ */
        password: '123456',              /* 密码 */ */
        port: 54321,                     /* 端口 */ */ */
        ssl: false,                      /* 是否使用ssl加密,true/false ,默认值为false */
    })
    
    /* 连接数据库 */
    client.connect(err => {
      if (err) {
        console.error('connection error', err.stack)
      } else {
        console.log('connected')
      }
    })
    

    3.2. 执行语句

    使用 Client.query() 执行语句。

    1. 执行不带参数的语句

    client.query('SELECT * FROM TEST', (err, res) => {
      if (err) throw err
      console.log(res)
    })
    
    1. 执行带参数的语句

    方法1:

    const text = 'INSERT INTO users(name, email) VALUES($1, $2) RETURNING *'
    const values = ['myname', 'myemail@gmail.com']
    /*  回调函数 */
    client.query(text, values, (err, res) => {
      if (err) {
        console.log(err.stack)
      } else {
        console.log(res)
      }
    })
    

    方法2:

    const query = {
      text: 'INSERT INTO users(name, email) VALUES($1, $2)',
      values: ['myname', 'myemail@gmail.com'],
    }
    /*  回调函数 */
    client.query(query, (err, res) => {
      if (err) {
        console.log(err.stack)
      } else {
        console.log(res)
      }
    })
    
    1. 创建一个准备好的语句,在多次执行时提高效率

    const query = {
      /*  name参数用于命名准备好的语句 */
      name: 'fetch-user',
      text: 'SELECT * FROM user WHERE id = $1',
      values: [1],
    }
    /*  回调函数 */
    client.query(query, (err, res) => {
      if (err) {
        console.log(err.stack)
      } else {
        console.log(res)
      }
    })
    

    3.3. 关闭连接

    使用 Client.end() 关闭连接。

    client.end(err => {
      console.log('client has disconnected')
      if (err) {
        console.log('error during disconnection', err.stack)
      }
    })
  • 相关阅读:
    无线WIFI工业路由器可用于楼宇自动化
    千卡利用率超98%,详解JuiceFS在权威AI测试中的实现策略
    [问题已处理]-虚拟机报错contains a file system with errors check forced
    重庆市5米数字高程(DEM)数据
    About OushuDB (Oushu Database)
    Vue基础(八)——路由
    实现寄生组合继承
    Redis高可用、持久化及性能管理
    英特尔神经网络计算棒
    【Linux】Linux的常见指令详解(上)
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126524009