一款nodejs操作mysql数据库的orm库


Keywords
mysql, orm
License
ISC
Install
npm install mysql-ithm@2.2.4

Documentation

mysql-ithm

一款nodejs操作mysql数据库的orm库

  • 黑马程序员:http://www.itheima.com

  • 官方文档地址:https://github.com/kxzkane/mysql-ithm

  • npm地址:https://www.npmjs.com/package/mysql-ithm

  • 技术亮点

    • (1)基于ORM技术,使用对象的方式来操作mysql数据库,而无需编写任何sql语句
    • (2)支持数据库的常规操作增删改查,API极为简洁,且高效智能。
    • (3)支持条件查询 与 分页查询
    • (4)支持原生sql语句,如果我们的框架无法满足您的需求,我们也提供了特殊的API可以直接使用sql语句来操作
    • (5)支持链式语法

01-安装

  • 安装mysql-ithm
    • npm install mysql-ithm

02-导入

//导入模块
const hm = require('mysql-ithm');

03-使用(example)

//1.导入模块
const hm = require('mysql-ithm');

//2.连接数据库
//如果数据库存在则连接,不存在则会自动创建数据库
hm.connect({
    host: 'localhost',//数据库地址
    port:'3306',
    user: 'root',//用户名,没有可不填
    password: 'root',//密码,没有可不填
    database: 'hm'//数据库名称
});

//3.创建Model(表格模型:负责增删改查)
//如果table表格存在则连接,不存在则自动创建
let studentModel = hm.model('student',{
    name:String,
    age:Number
});

//4.调用API:添加数据
studentModel.insert({name:'张三10',age:30},(err,results)=>{
    console.log(err);
    console.log(results);
    if(!err) console.log('增加成功');
});

04-API Document

1.1-增加操作

studentModel.insert({name:'张三10',age:30},(err,results)=>{
    console.log(err);
    console.log(results);
    if(!err) console.log('增加成功');
});
  • 批量增加
var arr = [];
for (var i = 1; i <= 10; i++) {
    arr.push({ name: '张三', age: 30 })
}

studentModel.insert(arr, (err, results) => {
    console.log(err);
    console.log(results);
    if (!err) console.log('增加成功');
});

1.2-查询操作

1-查询所有数据

//2.1 查询所有数据
studentModel.find((err,results)=>{
    console.log(results);
});

2-查询数据库指定字段数据

//2.2 根据数据库字段查询部分数据
// ['name'] : 将要查询的字段放入数组中
studentModel.find(['name'],(err,results)=>{
    console.log(results);
});

3-条件查询

//2.3 根据条件查询数据
// 'id=1' : 查询id为1的数据 (查询条件可以参考sql语句)
//例如 'age>10' : 查询age超过10的数据 
//例如 'name>"张三"' : 查询名字为张三的数据,注意字符串添加引号
studentModel.find('id>21',(err,results)=>{
    console.log(results);
});

4-分页查询

//2.4 分页查询
//  第一个参数options对象有三个属性 {where:分页查询条件(可选), number:页数 , count:每页数量}
studentModel.limit({where:'age>28',number:1,count:10},(err,results)=>{
    console.log(results);
});

1.3-修改操作

1-修改所有数据

//3.1 将数据库中所有的name字段值:修改为李四
studentModel.update({name:'李四'},(err,results)=>{
    console.log(results);
});

2-条件修改

//3.2 将数据库中 id = 1 的数据,age修改为30
studentModel.update('id=1',{age:30},(err,results)=>{
    console.log(results);
});

//3.3 将数据库中所有 age < 20 的数据,name修改为王五
studentModel.update('age<20',{name:'王五'},(err,results)=>{
    console.log(results);
});

1.4-删除操作

//4.1 删除所有 age>30 的数据
studentModel.delete('age>20',(err,results)=>{
    console.log(results);
});

//4.2 清空表中所有数据
studentModel.delete((err,results)=>{
    console.log(results);
});

1.5-执行自定义SQL语句

studentModel.sql('insert into student(name,age) values("andy",20)',(err,results)=>{
    console.log(results);
});

1.5-删除表格(慎用)

studentModel.drop((err,results)=>{
    console.log(results);
});

1.7-链式语法支持

studentModel.insert({name:'张三22',age:22},(err,results)=>{
    console.log(err);
    console.log(results);
})
.find('name="张三22"',(err,results)=>{
    console.log(err);
    console.log(results);
});