https://github.com/zhchen7/database-experiment
大二下学期数据库课程临近期末布置的一项大作业。运用技术:bootstrap+art-template+node.js+mysql未来的自己加油!
https://github.com/zhchen7/database-experiment
Last synced: 5 months ago
JSON representation
大二下学期数据库课程临近期末布置的一项大作业。运用技术:bootstrap+art-template+node.js+mysql未来的自己加油!
- Host: GitHub
- URL: https://github.com/zhchen7/database-experiment
- Owner: ZhChen7
- Created: 2019-09-21T03:35:56.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T15:48:53.000Z (over 2 years ago)
- Last Synced: 2024-11-14T14:44:13.674Z (7 months ago)
- Language: JavaScript
- Homepage:
- Size: 2.39 MB
- Stars: 3
- Watchers: 2
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 大二数据库实验
#### 介绍
> 数据库课程实验综合小实验(做一个项目实现增删改查功能)
>
> 大二下学期期末大作业!### 技术运用:
运用到的技术:**bootstrap**+ **art-template** + **node.js** + **mysql**
| 课题 | 数据库 |
| ------------ | -------------------- |
| 班级 | 1701 |
| 作者姓名 | 周琛 |
| 学号 | 2017115010124 |
| 所在院系 | 计算机信息与工程学院 |
| 学科专业名称 | 计算机科学与技术 |
| 导师及职称 | 童强 |
## 一、实验目的与要求
1. 用 node 设计一个应用程序,实现对平时实验数据库的增、删、改、查。
2. 说明文档中有node 连接数据库的关键代码说明。
3. 给了一个实例代码,实现了对一张表的增删改查功能(说明文档中可以看到数据库及表的名称,和有关连接数据库和实现增删改查的关键代码)。
4. 可以运行,实现对学生课程数据库的操作;
## 二.步骤操作
#### 1. 用node 设计一个应用程序,实现对平时实验数据库的增、删、改、查。
**效果图:**
用图说话:

### 视频:
### 2. 说明文档中有node 连接数据库的关键代码
> 文件 : mysql.js
>
> **作用: 连接数据库,执行数据操作、 封装、暴露方法.****mysql.js**:
~~~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;
}
});
});
});
}
};
~~~## 3.实现了对一张表的增删改查功能
> 给了一个实例代码,实现了对一张表的增删改查功能(说明文档中可以看到数据库及表的名称,和有关连接数据库和实现增删改查的关键代码)。
#### 添加功能实现:
```js
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'
})
})
})
```**效果图:**

#### 删除功能实现 :
```js
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, '/');
})
})
```**效果图:**

#### 修改功能实现
~~~js
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'
})
})
})
~~~**效果图:**

#### 查找功能实现
~~~js
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
})
});
})
~~~**效果图:**

## 4. 运行程序
相关代码源代码以上传至码云,地址为: