zoukankan      html  css  js  c++  java
  • node.js(5)——mysql、连接池

    MYSQL模块

     1、连接数据库:

    mysql -h主机名称   -u用户名 -p密码

    2、普通连接MySQL:

     // 创建连接

    var connection=mysql.createConnection({
    host:'127.0.0.1',
    port:'3306',
    user:'root',
    password:'****',
    database:'testNode'
    });

    // 执行连接

    connection.connect();

    // 执行sql语句,callback是回调函数用于获取sql语句执行结果
    connection.query('select * from emp',(err,result)=>{
    if err throw err;
    console.log(result); // 返回的是一个数组,数组里边是多个对象
    });

    // sql执行完断开连接
    connection.end();

    例1:

    // 引入mysql模块
    const mysql=require('mysql');
    // 普通链接
    // 创建连接对象
    var connection=mysql.createConnection({
        host:'127.0.0.1',
        port:'3306',
        user:'root',
        password:'****',
        database:'testNode'
    });
    
    // 执行连接
    connection.connect();
    // 执行sql语句
    connection.query('select * from emp',(err,result)=>{
        if err throw err;
        console.log(result);     // 返回的是一个数组,数组里边一个员工是一个对象
    });
    // sql执行完断开连接
    connection.end();

    连接池---提前准备好连接

    使用连接池连接

    // 创建连接池对象
    var pool=mysql.createPool({
    host:'127.0.0.1',
    port:'3306',
    user:'root',
    password:'****',
    database:'testNode',
    connectionLimit:20 // 设置连接池的数量
    });

    // 执行sql语句

    pool.query('select * from emp where id=1',callback)

    例1:

    // 引入mysql模块
    const mysql=require('mysql');
    // 创建连接池对象
    var pool=mysql.createPool({
        host:'127.0.0.1',
        port:'3306',
        user:'root',
        password:'****',
        database:'testNode',
        connectionLimit:20        // 设置连接池的数量
    });
    // 执行sql语句
    // 取一个连接执行sql语句
    pool.query('select * from emp where id=1',(err,result)=>{
        if err throw err;
        console.log(result);
    });

    练习:

    /* 删除id为1的员工的信息,查看结果;
    修改id为2的员工姓名为“王五”,查看结果 */
    
    // 引入mysql模块
    const mysql=require('mysql');
    // 创建连接池对象
    var pool=mysql.createPool({
        host:'127.0.0.1',
        port:'3306',
        user:'root',
        password:'****',
        database:'testNode',
        connectionLimit:20        // 设置连接池的数量
    });
    // 执行sql语句
    /* 返回的对象中的affectedRow属性表示是否成功删除,如果大于0有
    数据删除,负责没有删除任何数据 */
    // 使用占位符?,防止sql注入
    pool.query('delete from emp where id=? and ename=?',[1,"张三"],(err,result)=>{
        if err throw err;
        console.log(result);
    });
    pool.query('updata emp set ename=? where ename=?',["王五","李四"],(err,result)=>{
        if err throw err;
        console.log(result);
    });
    pool.query('insert into emp values(?,?),[3,"小赵"]',(err,result)=>{
        if err throw err;
        console.log(result);
    });
    // 以对象的方式插入数据
    var person={
        eid:null,
        ename:'tom'
    };
    pool.query('insert into emp set ?',[person],(err,result)=>{
        if err throw err;
        console.log(result);
    });

     [练习]

    【.js文件】

    /*
    创建web服务器,托管静态资源到public中,该目录下创建login.html.
    点击提交按钮,向服务器端发请求(/add,post)
    */
    const express=require('express');
    const bodyParser=require('body-parser');
    const mysql=require('mysql');
    const querystring=require('querystring');
    var server=express();
    server.listen(3000);
    
    server.use(express.static('public'));
    server.user(bodyParser.urlencoded({
        extended:false
    
    }));
    server.post('/add',(req,res)=>{
        var obj=req.body;
        // 获取数据对象,将数据插入到数据库中
        var connection=mysql.createConnection({
        host:'127.0.0.1',
        port:'3306',
        user:'root',
        password:'****',
        database:'testNode'
        });
        connection.connect();
        pool.query('insert into demp set ?',[obj],(err,result)=>{
        if err throw err;
      // console.log(result);
      // 判断数据是否插入成功
          if(result.affectedRow>0{
              res.send({code:200,msg:'add success'});
          });
        
    });

    【.html文件】

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
    </head>
    <body>
        <form action="/add" method="post">
            部门编号<input type="text" name="dempnum"><br>
            部门名称<input type="text" name="dempname"><br>
            <input type="submit">
            
        </form>
    
    </body>
    </html>
  • 相关阅读:
    关于input输入框placeholder属性的样式问题
    关于input输入框checkbox类型的样式问题
    三层构架
    盒模型
    line height
    sql
    继承
    对象
    正则表达式
    事件
  • 原文地址:https://www.cnblogs.com/hd-test/p/11873380.html
Copyright © 2011-2022 走看看