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模块的使用)》对你有帮助,请点赞、收藏,并留下你的观点哦!