失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Node.js中的MySQL模块化开发——数据库访问中的ORM(sequelize模块的使用)

Node.js中的MySQL模块化开发——数据库访问中的ORM(sequelize模块的使用)

时间:2020-02-12 00:54:32

相关推荐

Node.js中的MySQL模块化开发——数据库访问中的ORM(sequelize模块的使用)

ORM简介

ORM:对象关系映射,主要解决面向对象编程与关系型数据库之间不匹配的问题

类 ---- 表

属性 ---- 列

对象 ---- 行

ORM的特点:

(1)可以提高开发的效率

(2)不用直接写sql语句

配置环境

在终端用npm install mysql2下载MySQL模块。

在安装了MySQL的前提下输入npm install sequelize安装ORM的实现框架(模块):sequelize。

创建db文件夹,在db下创建config文件夹和model文件夹。在config文件夹下创建dbconfig.js文件。在model文件夹下创建StudentModel.js文件。创建JS文件夹,在JS文件夹下创建StudentOptions.js和student.js

连接数据库

创建sequelize的对象。

//导入模块const mysql = require('mysql2');const Sequelize = require('sequelize');//创建数据库连接对象var MySequelize = new Sequelize('srs','root','',{host:'localhost',port:3306,dialect:'mysql',//数据库类型pool:{//数据库连接池max:20,//最大连接对象的个数min:5,//最少连接对象的个数idle:10000//最长等待时间}});module.exports = MySequelize;//将自身创建的数据库连接导出

创建数据模型

数据模型是一个类,对应的是数据库中一张表,使用define方法创建。其实就是定义数据表结构,将表结构写进代码里。

StudentModel.js文件中的代码:

const Sequelize = require('sequelize');//导入模块const MySequelize = require('../config/dbconfig');//导入文件//创建StudentModel模型,该模型对的表名是studentvar StudentModel = MySequelize.define('student',{sId:{type:Sequelize.INTEGER,//表示属性的数据类型field:'s_Id',//属性对应的列名primaryKey:true,//表示主键 autoIncrement:true//表示主键自增},sName:{type:Sequelize.STRING(50),field: 's_Name',allowNull:false//表示该列不能为空// unique:true //表示该列的值必须唯一},sGender:{type:Sequelize.STRING(4),field: 's_Gender',allowNull:false//表示该列不能为空},sBirthday:{type:Sequelize.DATE,field: 's_Birthday',allowNull:false//表示该列不能为空},sAddress:{type:Sequelize.STRING(100),field: 's_Address',allowNull:false//表示该列不能为空},},{freezeTableName:true,//如果是true,则使用给定的表名,false表示模型名+s作为表名timestamps:false//true表示给模型带上时间戳属性(createAt、updateAt),false表示不带时间戳属性})// var student = StudentModel.sync({force:false});//同步数据库,force的值为false,表若存在先删除后创建,为true的话,表示若表存在则不创建module.exports = StudentModel;//导出模块

创建初始数据,进行CURD操作

在StudentOptions.js的代码:

const StudentModel = require('../db/model/StudentModel');//导入建立的表结构//定义添加函数var addStudent = function (Name,Gender,Birthday,Address){return StudentModel.create({sName:Name,sGender:Gender,sBirthday:Birthday,sAddress:Address}).then(result=>{console.log("插入成功!",result);}).catch(err=>{console.log("插入失败!",err);})}module.exports = addStudent;//导出添加函数

在student.js中的代码:实行数据的插入

const addStudent = require('./StudentOptions');addStudent('小花','女','2001.5.6','饭都花园');//注意:主键是自增的,不用手动写

如果觉得《Node.js中的MySQL模块化开发——数据库访问中的ORM(sequelize模块的使用)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。