• [Node.js]操作mysql


    摘要

    上篇文章介绍了node.js操作redis的简单实例,这里介绍如何操作mysql。

    安装

    安装mysql模块

    cnpm install mysql

    一个例子

    新建一个mysql.js的文件,代码如下:

    连接配置

    1. host:主机地址 (默认:localhost)
    2. user:用户名
    3. password:密码
    4. port:端口号 (默认:3306)
    5. database:数据库名
    6. charset:连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)
    7. localAddress:此IP用于TCP连接(可选)
    8. socketPath:连接到unix域路径,当使用 host 和 port 时会被忽略
    9. timezone:时区(默认:'local')
    10. connectTimeout:连接超时(默认:不限制;单位:毫秒)
    11. stringifyObjects:是否序列化对象(默认:'false' ;与安全相关https://github.com/felixge/node-mysql/issues/501)
    12. typeCast:是否将列值转化为本地JavaScript类型值 (默认:true)
    13. queryFormat:自定义query语句格式化方法 https://github.com/felixge/node-mysql#custom-format
    14. supportBigNumbers:数据库支持bigint或decimal类型列时,需要设此option为true (默认:false)
    15. bigNumberStrings:supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false)
    16. dateStrings:强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)
    17. debug:开启调试(默认:false)
    18. multipleStatements:是否许一个query中有多个MySQL语句 (默认:false)
    19. flags:用于修改连接标志,更多详情:https://github.com/felixge/node-mysql#connection-flags
    20. ssl:使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件

    mysql的操作

    创建数据表

    SET FOREIGN_KEY_CHECKS=0;
    
    -- ----------------------------
    -- Table structure for users
    -- ----------------------------
    DROP TABLE IF EXISTS `users`;
    CREATE TABLE `users` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `CreateTime` datetime NOT NULL,
      `Header` varchar(255) DEFAULT NULL,
      `NickName` varchar(255) DEFAULT NULL,
      `Sex` int(11) NOT NULL,
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    //引入mysql模块
    var mysql = require("mysql");
    //创建连接
    var connection = mysql.createConnection({
        host: "localhost",
        port: "3306",
        user: "root",
        password: "abcd",
        database: "it_odd_o",
    });
    //开始连接
    connection.connect(function (err) {
        if (err) {
            console.log("[connect] - " + err);
            return;
        } else {
            console.log("connection connect successed!");
        };
    });
    //执行sql语句
    connection.query("select 1+1 as result", function (err, rows, fields) {
        if (err) {
            console.log("[query] - " + err);
        } else {
            console.log("result is " + rows[0].result);
        };
    });
    //向user表中插入数据
    var userAddSql = "insert into users(createTime,header,nickName,sex) value(now(),?,?,1);";
    var userAddSql_params = ["1.jpg", "wolfy"];
    //执行sql语句
    connection.query(userAddSql, userAddSql_params, function (err, result) {
        if (err) {
            console.log("[insert] - " + err);
        } else {
            console.log(result);       
        };
    });
    //断开连接
    connection.end();

    结果

    //
    var userUpdateSql="update users set header=? where id=?;";
    var userUpdateSql_params=["2.jpg",2];
    connection.query(userUpdateSql, userUpdateSql_params, function (err, result) {
        if (err) {
            console.log("[update] - " + err);
        } else {
            console.log(result);       
        };
    });

    总结

    通过上面的例子我们看到起主要作用还是sql语句以及参数化查询,其他的跟sql语句相似。不再一一举例。

    参考文章

    http://www.cnblogs.com/zhongweiv/p/nodejs_mysql.html

  • 相关阅读:
    区块链技术驱动金融.mobi
    ProcessExplorer 工具下载
    免费的论文查重网站
    接口可以继承接口吗?
    比较中的自动拆装箱
    Java语言中的异常处理
    Java类加载过程
    通过反射访问父类的私有成员
    final关键字详解
    MVC 控制台 +log4net 存入数据库
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/6898713.html
Copyright © 2020-2023  润新知