myjdbc

6.1.15-alpha • Public • Published

MyJdbc

update:

  • model & connection 支持async+await

Quick Start

开发说明

npm install 
npm run build:watch

发布说明

npm run build
npm publish

安装使用

npm install myjdbc
#依赖的java模块安装环境请参考:https://github.com/joeferner/node-java#readme

Basic Usage

    let MyJdbc=require('myjdbc');
    MyJdbc(['./drivers/jconn4.jar']); //初始化驱动
    
    //create DBConnection pool
    let pool=new MyJdbc.Pool({
         name:'runsatest',
         dbms: 'sybase',
         //encrypt:'des-ecb', //密码加密选项,使用环境变量进行解密
         "drivername": "com.sybase.jdbc4.jdbc.SybDriver",
         "url": "jdbc:sybase:Tds:192.168.15.194:51940/rts_xjjx?APPLICATIONNAME=runsa_interface&useUnicode&charset=cp936",//数据库连接信息
         "minpoolsize": 1,//最小连接池
         "maxpoolsize": 4,//最大连接数
         "properties": { 
             user: "zgsybase", //数据库账号
             password:"EOkFn1zK/Tg/NyHKYxHpAw==" //数据库口令
         }
     });
    
    //open DBConnection pool
    pool.open((err)=>{
        if (err) {
            console.error(err);
        }else{
            console.log(pool.getStatus()); //输出连接池信息
        }
    });
    
    //getConnection from DBConnection pool
    pool.getConnection((err,conn)=>{
    
        //查询结果输出为对象数组
        await conn.Query('select 1');
        await conn.Query('select 1 where 1=?',[1]);
        
        //查询结果输出为二维数组
        await conn.QueryGrid('select 1');
        await conn.QueryGrid('select 1 where 1=?',[1]);
        
        //Run DML
        await conn.Execute('delete table where 1=1');
        await conn.Execute('delete table where 1=?',[1]);
        await conn.Execute(['delete table where ...','delete table where ...']);
        
        //Run DDL
        await conn.ExecuteDDL('drop table ');
        await conn.ExecuteDDL(['drop table ','drop table ']);
        
        //Commit/Rollback transction
        await conn.Commit((err)=>{});
        await conn.Rollback((err)=>{});
        
        //set/get autocommit mode
        await conn.setAutoCommit(true/false);
        await conn.getAutoCommit((err,value)=>{});
        
        pool.releaseConn(conn);
    });

Model Usage

    let myjdbc=require('myjdbc');
    
    /**
    * @param {{conn:connection,table:String,[fields]:{},[sort]:{},[where]:{}}}
    */
    let studentModel=new myjdbc.Model({conn,table:'student'});
    
    /**
    * @param option {{select:String,where:{},[sort]:{},limit:[],[commit]:Boolean}}
    * @param callback
    */
    await studentModel.find({select:'id,name',where:{id:1}});
    await studentModel.findOne({select:'id,name',where:{id:1}});
    
    /**
    * @param option {{data:[{}],[fields]:[String],[values]:[String],[types]:[String],[commit]:Boolean}}
    * @param callback
    */
    await studentModel.insert({
        data:[{id:1,name:'hello'},{id:2,name:'world'}]
    });
    
    /**
    * @param option {{set:{},where:{},[commit]:Boolean}}
    * @param callback
    */
    await studentModel.update({set:{name:'hi'},where:{id:1}});
    
    /**
    * @param option {{where:{},[commit]:Boolean}}
    * @param callback
    */
    await studentModel.remove({where:{id:1}});

Readme

Keywords

none

Package Sidebar

Install

npm i myjdbc

Weekly Downloads

389

Version

6.1.15-alpha

License

GPL

Unpacked Size

394 kB

Total Files

78

Last publish

Collaborators

  • sunshine_it
  • dbit
  • dbit-node
  • bensonbai