数据库课程实验综合小实验(做一个项目实现增删改查功能)
大二下学期期末大作业!
运用到的技术:bootstrap+ art-template + node.js + mysql
课题 | 数据库 |
---|---|
班级 | 1701 |
作者姓名 | 周琛 |
学号 | 2017115010124 |
所在院系 | 计算机信息与工程学院 |
学科专业名称 | 计算机科学与技术 |
导师及职称 | 童强 |
-
用 node 设计一个应用程序,实现对平时实验数据库的增、删、改、查。
-
说明文档中有node 连接数据库的关键代码说明。
-
给了一个实例代码,实现了对一张表的增删改查功能(说明文档中可以看到数据库及表的名称,和有关连接数据库和实现增删改查的关键代码)。
-
可以运行,实现对学生课程数据库的操作;
效果图:
用图说话:
文件 : mysql.js
作用: 连接数据库,执行数据操作、 封装、暴露方法.
mysql.js:
const mysql = require('mysql');
//执行数据操作、 封装、暴露方法
module.exports = {
query: function (sql, params, callback) {
//1.创建链接
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '123456',
database: 'zc'
});
//每次使用的时候需要创建链接,数据操作完成之后要关闭连接
connection.connect(function (err) {
if (err) {
console.log('数据库链接失败');
throw err;
}
//开始数据操作
//传入三个参数,第一个参数sql语句,第二个参数sql语句中需要的数据,第三个参数回调函数
connection.query(sql, params, function (err, results, fields) {
if (err) {
console.log('数据操作失败');
throw err;
}
//将查询出来的数据返回给回调函数
callback && callback(results, fields);
//results作为数据操作后的结果,fields作为数据库连接的一些字段
//停止链接数据库,必须再查询语句后,要不然一调用这个方法,就直接停止链接,数据操作就会失败
connection.end(function (err) {
if (err) {
console.log('关闭数据库连接失败!');
throw err;
}
});
});
});
}
};
给了一个实例代码,实现了对一张表的增删改查功能(说明文档中可以看到数据库及表的名称,和有关连接数据库和实现增删改查的关键代码)。
router.post('/add', function (req, res, next) {
let body = req.body
console.log(body)
let addSql = 'INSERT INTO user(id,username,tel) VALUES(?,?,?)';
let addSqlParams = [body.id, body.username, body.tel];
db.query(addSql, addSqlParams, function (result, fields) {
console.log('添加成功')
return res.status(200).json({
err_code: 0,
message: 'OK'
})
})
})
效果图:
router.get('/delete', function (req, res, next) {
let deleteSql = 'DELETE FROM user WHERE id = ?';
let deleteSqlParams = req.query.id;
db.query(deleteSql, deleteSqlParams, (err, results) => {
if (err) {
console.log(err);
}
res.redirect(302, '/');
})
})
效果图:
router.get('/fix', function (req, res, next) {
fixsql = 'SELECT * FROM user WHERE id = ?'
fixSqlParams = req.query.id
db.query(fixsql, fixSqlParams, (result) => {
res.render('fix.html', {
result: result[0]
})
})
})
router.post('/fix', function (req, res, next) {
console.log(req.body)
updatasql = 'UPDATE user SET username = ?,tel=? WHERE id = ?';
updataSqlParams = [req.body.username, req.body.tel, req.body.id];
db.query(updatasql, updataSqlParams, (err, results) => {
if (err) {
console.log(err);
}
return res.status(200).json({
err_code: 0,
message: 'OK'
})
})
})
效果图:
router.post('/search', function (req, res, next) {
console.log(req.body)
arr = []
db.query('select * from user', [], function (result, fields) {
console.log(result)
result.forEach(function (e) {
if (e.id.indexOf(req.body.value) >= 0 || e.username.indexOf(req.body.value) >= 0 || e.tel.indexOf(req.body.value) >= 0) {
arr.push(e)
}
})
return res.status(200).json({
err_code: 0,
message: arr
})
});
})
效果图:
相关代码源代码以上传至码云,地址为: https://gitee.com/zxinc/sophomore_database_experiment