小程序云开发之数据库增删改查操作

小程序云开发之数据库增删改查操作

最近在学习小程序的云开发,刚好学到云数据库,这里做个笔记,方便下次查看
先创建一个小程序项目,不要选择云开发,然后也不要选择模板,不然会创建许多不需要用到的东西。
然后我们在pages中创建一个目录,假设就叫study,
在这里插入图片描述
然后,我们点击云开发
在这里插入图片描述
选择数据库,点击+号创建一个student表
在这里插入图片描述
然后我们在这个表中添加数据(‘0001’,‘张三’,‘2020’,‘软件工程’)
在这里插入图片描述
从上到下分别代表学生的学号、姓名、年级和专业
然后我们修改数据权限,以便后续进行增删改查
在这里插入图片描述
我们修改study.wxml文件,代码如下:

输入学号:<input bindinput="getStuId"/>
输入姓名:<input bindinput="getName"/>
输入年级:<input bindinput="getGrade"/>
输入专业:<input bindinput="getMajor"/>
<button type="primary" bindtap="addStu">添加学生</button>
<view wx:for="{{list}}">
    <view>学号:{{item.stuId}} 姓名:{{item.name}}</view>
    <view>年级:{{item.grade}} 专业:{{item.major}}</view>
</view>

然后修改student.wxss文件,设置input的外观,代码如下:

input{
    border:1px solid gray;
}

然后修改student.json文件,设置标题,代码如下:

{
  "usingComponents": {},
  "navigationBarTitleText": "学生列表"
}

最后修改study.js文件,代码如下:

//全局变量,方便获取输入信息
let stuId=''
let name=''
let grade=''
let major=''
Page({
    onLoad(){
        //获取学生信息
        this.getList()
    },
    getList(){
        let db=wx.cloud.database()
        db.collection('student')
        .get()
        .then(res=>{
            this.setData({
                list:res.data
            })
            console.log('获取信息成功')
        })
        .catch(err=>{
            console.log('获取信息失败')
        })
    },
    //获取学生id
    getStuId(event){
        stuId=event.detail.value
    },
    //获取学生姓名
    getName(event){
        name=event.detail.value
    },
    //获取学生年级
    getGrade(event){
        grade=event.detail.value
    },
    //获取学生专业
    getMajor(event){
        major=event.detail.value
    },
    //添加学生
    addStu(){
        //当输入为空时,打印提示信息
        if(stuId==''){
            wx.showToast({
                icon:"none",
                title:"学号不能为空"
            })
        }else if(name==''){
            wx.showToast({
                icon:"none",
                title:"姓名不能为空"
            })
        }else if(grade==''){
            wx.showToast({
                icon:"none",
                title:"年级不能为空"
            })
        }else if(major==''){
            wx.showToast({
                icon:"none",
                title:"专业不能为空"
            })
        }else{
            //添加学生信息
            wx.cloud.database().collection('student')
            .add({
                data:{
                    stuId:stuId,
                    name:name,
                    grade:grade,
                    major:major
                }
            })
            .then(res=>{
                console.log('添加成功')
                 //添加后,刷新数据
            this.getList()
            })
            .catch(err=>{
                console.log('添加失败')
            })
     
        }
    }
})

当我们输入信息,若有一个信息为空时,会显示提示信息
在这里插入图片描述
添加成功后,如下图
在这里插入图片描述
我们打开云开发,查看记录列表,发现李四的消息里有openid而张三的却没有,这是因为李四的信息是我们在控制台添加的,而张三不是
在这里插入图片描述
我们要把李四的openid复制,然后在张三信息里添加openid,openid的值和李四的一样,这样我们后续才能对张三进行删除、修改操作。
接着我们再创建一个目录,假设名为study1
我们先修改study.wxml,代码如下:

输入学号:<input bindinput="getStuId"/>
输入姓名:<input bindinput="getName"/>
输入年级:<input bindinput="getGrade"/>
输入专业:<input bindinput="getMajor"/>
<button type="primary" bindtap="addStu">添加学生</button>
<view wx:for="{{list}}">
    <view bindtap="goDetail" data-id="{{item._id}}">学号:{{item.stuId}} 姓名:{{item.name}} 年级:{{item.grade}} 专业:{{item.major}}</view>
</view>

再修改study.js文件,代码如下:

//全局变量,方便获取输入信息
let stuId=''
let name=''
let grade=''
let major=''
Page({
    onLoad(){
        //获取学生信息
        this.getList()
    },
    getList(){
        let db=wx.cloud.database()
        db.collection('student')
        .get()
        .then(res=>{
            this.setData({
                list:res.data
            })
            console.log('获取信息成功')
        })
        .catch(err=>{
            console.log('获取信息失败')
        })
    },
    //获取学生id
    getStuId(event){
        stuId=event.detail.value
    },
    //获取学生姓名
    getName(event){
        name=event.detail.value
    },
    //获取学生年级
    getGrade(event){
        grade=event.detail.value
    },
    //获取学生专业
    getMajor(event){
        major=event.detail.value
    },
    //添加学生
    addStu(){
        //当输入为空时,打印提示信息
        if(stuId==''){
            wx.showToast({
                icon:"none",
                title:"学号不能为空"
            })
        }else if(name==''){
            wx.showToast({
                icon:"none",
                title:"姓名不能为空"
            })
        }else if(grade==''){
            wx.showToast({
                icon:"none",
                title:"年级不能为空"
            })
        }else if(major==''){
            wx.showToast({
                icon:"none",
                title:"专业不能为空"
            })
        }else{
            //添加学生信息
            wx.cloud.database().collection('student')
            .add({
                data:{
                    stuId:stuId,
                    name:name,
                    grade:grade,
                    major:major
                }
            })
            .then(res=>{
                console.log('添加成功')
                //添加后,刷新数据
                this.getList()
            })
            .catch(err=>{
                console.log('添加失败')
            })
        }
    },
    //转发到具体页面
    goDetail(event){
        wx.navigateTo({
            url:"/pages/study1/study1?id="+ event.currentTarget.dataset.id
        })
    }
})

然后我们修改study1.wxml文件,代码如下:

<view>
    <view>学号:{{student.stuId}} 姓名:{{student.name}}</view>
    <view>年级:{{student.grade}} 专业:{{student.major}}</view>
</view>
修改学生专业:
<input bindinput="getMajor"></input>
<button bindtap='update' type="primary">修改专业</button>
<button type="warn" bindtap='delete'>删除学生</button>

修改study1.js 文件,代码如下:

var id=''
let major=''
Page({
    onLoad(options){
        id=options.id
        this.getDetail()
    },
    getDetail(){
        wx.cloud.database().collection('student')
        .doc(id)
        .get()
        .then(res=>{
            console.log('获取成功',res)
            this.setData({
                student:res.data
            })
        })
        .catch(err=>{
            console.log('获取失败',err)
        })
    },
    //获取学生专业
    getMajor(event){
        major=event.detail.value
    },
    //修改学生
    update(){
        if(major==''){
            wx.showToast({
                icon:"none",
                title:"专业不能为空"
            })
        }else{
            wx.cloud.database().collection('student')
            .doc(id)
            .update({
                data:{
                     major:major
                }
            })
            .then(res=>{
                console.log('修改成功',res)
                //修改后刷新
                this.getDetail()
            })
            .catch(err=>{
                console.log('修改失败',err)
            })
        }
    },
    //删除学生
    delete(){
        //弹窗提示
        wx.showModal({
            title:"确定删除吗?",
            content:"您再仔细想想要不要开除该学生",
            success(res){
                if(res.confirm==true){//确定删除
                    wx.cloud.database().collection('student')
                    .doc(id)
                    .remove()
                    .then(res=>{
                        console.log('删除成功',res)
                        wx.navigateTo({
                            url:"/pages/study/study"
                        })
                    })
                    .catch(err=>{
                        console.log('删除失败',err)
                    })
                }
                else if(res.cancel==true){//取消删除
                    console.log('已取消')
                }
            }
        })
    }
})

效果如下,
在这里插入图片描述
点击某行学生后,跳转到学生页面
在这里插入图片描述
点击删除时,会有提示
在这里插入图片描述
确定删除后跳转会学生列表页面
在这里插入图片描述

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
小程序云开发是微信官方提供的一种快速开发小程序的方式。在小程序云开发中,使用MySQL进行数据库的增、删、改、操作。 首先,创建一个函数,在其中编写数据库操作的代码。在函数的代码中,通过引入MySQL库进行数据库的连接和操作。使用MySQL语句进行增删改查操作。 例如,使用MySQL语句进行增加操作: ``` const mysql = require('mysql'); const connection = mysql.createConnection({ host: 'localhost', user: 'root', password: 'password', database: 'database_name' }); exports.main = async (event, context) => { try { const sql = 'INSERT INTO table_name (column1, column2) VALUES (?, ?)'; const values = [event.data.column1, event.data.column2]; connection.query(sql, values, function (error, results, fields) { if (error) throw error; console.log(results); }); } catch (e) { console.error(e); } } ``` 同样的,可以使用MySQL语句进行删除、更新和操作。使用不同的MySQL语句和参数,来实现不同的操作需求。 需要注意的是,在小程序云开发的环境中,需要提前配置数据库连接信息,并将MySQL库作为依赖进行安装。在函数代码中进行数据库操作时,需要使用到相应的配置信息和MySQL库。 总结来说,小程序云开发使用MySQL进行数据库增删改查操作,需要在函数中编写相应的代码,通过MySQL语句进行数据库操作。通过小程序云开发的这种方式,可以快速且方便地进行MySQL数据库增删改查操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值