当前位置: 首页 > news >正文

校园教务管理系统

   

学年论文(课程设计)

题目    信息管理系统     

校园教务管理系统

摘要:数据库技术是现代信息科学与技术的重要组成部分,是计算机数据处理与信息管理系统的核心,随着计算机技术的发展,数据库技术已经成为网络信息化的基础。本教务管理系统就是让教务人员从繁重的工作中解放出来,使他们在使用一个软件之后能极容易的对所有教务工作进行管理。

Key words:数据库;java;教务管理;图形化设计界面

目  录

1 功能需求.......................................1

1.1 课题介绍......................................1

1.2 工具与知识......................................1

1.3 功能任务......................................1

2  概要设计.....................................2

2.1 流程图....................................2

3 详细设计与实验.................................4

3.1 java文件定义及功能   ..............4

3.2主界面描述.....................4

3.2.1登陆界面.....................4

3.2.2学生端界面....................4

3.2.3 教师端界面......................10

3.2.4 管理员界面......................12

4 测试结果.............................24

4.1 登录界面测试...................................24

4.2学生界面测试................................25

4.3教师界面测试................................28

4.4 管理员界面测试................................30

5 总结........................................36

参考文献........................................37

附录.....................................38      

1  功能需求

    1. 课题介绍

在现代,高科技的飞跃发展,人们工作习惯的改变和电脑的普及,怎样提高工作效率是人们首先考虑的问题,教务管理是一个非常繁琐与复杂的一项工作,对于学校而言,应该运用一些本地资源提高管理力度,提高工作效率。

教务管理系统是一个复杂的计算机网络信息系统,满足各类高校对现在和将来对信息资源采集,存储,处理,组织,管理和利用的需求,实现信息资源的集中管理和统一调度。为信息交流、教务管理提供一个便捷的电子化手段。

    1. 工具与知识

工具:MySQL数据库,IntelliJ IDEA 。

MySQL是一个关系型数据库管理系统,关联数据库将数据库保存在不同的表中,而不是把所有数据放在一个大仓库中,增加了速度和灵活性。MySQL所使用的SQL语言是访问数据库的最常用标准化语言。

IDEA,全称IntelliJ IDEA,是 Java 语言的集成开发环境, IDEA 在业界被公认为是最好的 java 开发工具之一,一旦用上了就会上瘾。尤其在智能代码助手、代码自动提示、重构、 J2EE 支持、 Ant JUnit CVS 整合、代码审查、创新的 GUI 设计等方面的功能可以说是超常的。强大的整合能力。比如: Git Maven Spring  .IntelliJ IDEA 主要用于支持 Java Scala Groovy 等语言的开发工 具,同时具备支持目前主流的技术和框架,擅长于企业应用、移动应用和 Web 用的开发。

知识:java语言,数据库管理,sql语言

1.3功能任务

  主界面: 1)登录          2)注册

学生功能:1)查询并修改自己个人信息 2)查询本学期课表 

               3)选课、退课       4)选课结果

教师功能:1)查询、修改个人信息   2)查看选课情况

管理员功能:1)课程管理       2)教师管理

                     3)学生管理       4)密码重置

  1. 修改密码

2 概要设计

2.1  流程图

3 详细设计

3.1 java文件定义及功能

  根据实际需要我设计了4个java文件,分别是Student.java,Teacher.java,Administrator.java,Login_up.java。

Student.java是学生类

功能:查询、修改个人信息,查看课表、选课、查看老师信息、查看选课结果。

Teacher.java是教师类

功能:查询、修改个人信息,查看选课结果。

Adminstrator.java管理员类

功能:对课程、老师、学生进行增删改,重置密码、修改密码。

Login_up.java是登录和注册功能。

3.2主界面描述   

3.2.1登陆界面

 学生个人信息储存在数据库student中,包括s_id、姓名等,教师信息存储在Teacher中,包括id、姓名等个人信息。

     用户选择登录身份(学生、教师或管理员),用户名,密码,首先检查用户名在学生表(或教师表)中是否存在,不存在则提示,在进行数据库连接,若成功则密码正确,登录成功,否则密码错误。

流程如右图所示:      

 3.2.2学生端界面

在登录时,用静态变量JTname存储学生的ID。个人信息通过检索数据库表student得到(个人信息的修改也通过修改学生表完成)。

核心代码:stmt = con.createStatement();rs = stmt.executeQuery("select *from student where s_id=" + jTName.getText() + "");while (rs.next()) {jLabel1 = new JLabel(" \n学号: " + rs.getString("s_id"));jLabel2 = new JLabel(" \n姓名: " + rs.getString("s_name"));jLabel3 = new JLabel(" \n性别: " + rs.getString("s_gender"));jLabel4 = new JLabel(" \n年龄: " + rs.getString("s_age"));jLabel5 = new JLabel(" \n专业: " + rs.getString("s_specialty"));jLabel6 = new JLabel(" \n生源: " + rs.getString("s_source"));}

  核心代码:(其他字段类似)

if (!j_id.getText().isEmpty()) {String str = "update  student set s_id="+j_id.getText()+" where s_id="+jTName.getText()+"";System.out.println(str);try {stmt = con.createStatement();stmt.executeUpdate(str);} catch (SQLException ex) {throw new RuntimeException(ex);}}

课程表通过检索选cou_stu表,输出 满足(state=1&&sid=JTname)条件的信息,再拿此信息去遍历course表,输出所有返符合条件的信息。

  核心代码:

Vector rowdata = new Vector();Vector titlename = new Vector();//{"学号","姓名","性别","年龄","专业"};titlename.add("课序号");titlename.add("课程名称");titlename.add("授课老师编号");titlename.add("上课时间");titlename.add("上课地点");titlename.add("周数");titlename.add("课程类型");titlename.add("学分");String sql_1="select distinct cid from cou_stu  where state=0 && sid="+jTName.getText();System.out.println(sql_1);stmt=con.createStatement();rs=stmt.executeQuery(sql_1);while (rs.next()) {System.out.println(rs.getString("cid"));String s = "select *from course where c_id=" + rs.getString("cid");System.out.println(s);stmt1 = con.createStatement();ResultSet rs_1 = stmt1.executeQuery(s);while (rs_1.next()) {Vector hang = new Vector();hang.add(rs_1.getString("c_id"));hang.add(rs_1.getString("c_name"));hang.add(rs_1.getString("c_teacher"));hang.add(rs_1.getString("c_time"));hang.add(rs_1.getString("c_place"));hang.add(rs_1.getString("c_week"));hang.add(rs_1.getString("c_type"));hang.add(rs_1.getString("c_credit"));rowdata.add(hang);}}table1 = new JTable(rowdata,titlename);

选课窗口:通过遍历所有课程,以表格的形式展示再窗口上。学生在文本框里输入课序号,点击确认选课,选课成功后子在cou_stu表中添加了学生的学号、选课的状态以及课程的编号。

核心代码:(退课类似)

  JFrame jf=new JFrame("课程库表");jf.setBounds(0,0,600,400);JTable jt1=new JTable();Vector titlename = new Vector();//{"学号","姓名","性别","年龄","专业"};titlename.add("课序号");titlename.add("课程名称");titlename.add("授课老师编号");titlename.add("上课时间");titlename.add("上课地点");titlename.add("周数");titlename.add("课程类型");titlename.add("学分");Vector rowdata=new Vector();stmt=con.createStatement();String sql="select * from course ";rs=stmt.executeQuery(sql);while (rs.next()) {Vector hang = new Vector();hang.add(rs.getString("c_id"));hang.add(rs.getString("c_name"));hang.add(rs.getInt("c_teacher"));hang.add(rs.getString("c_time"));hang.add(rs.getString("c_place"));hang.add(rs.getString("c_week"));hang.add(rs.getString("c_type"));hang.add(rs.getInt("c_credit"));rowdata.add(hang);}JTable jTable=new JTable(rowdata,titlename);//两个VectorjTable.setEnabled(false);//显示但不可点击JScrollPane Scroll=new JScrollPane(jTable);jf.add(jTable.getTableHeader(),BorderLayout.NORTH);jf.getContentPane().add(Scroll,BorderLayout.CENTER);JMenuBar jMenuBar=new JMenuBar();jMenuBar.setLayout(null);JLabel jLabel=new JLabel("输入课序号");jLabel.setBounds(0,0,30,20);JTextField jTextField=new JTextField();jTextField.setBounds(100,0,10,30);JButton jsure=new JButton("确认选课");jsure.setBounds(160,0,20,15);jMenuBar.add(jLabel);jMenuBar.add(jTextField);jMenuBar.add(jsure);
jsure.addActionListener(new ActionListener() {int flag;@Overridepublic void actionPerformed(ActionEvent e) {String sql = "insert into cou_stu (sid,cid) value (" + jTName.getText() + "," + jTextField.getText() + ")";System.out.println(sql);try {flag= stmt.executeUpdate(sql);} catch (SQLException ex) {JOptionPane.showConfirmDialog(null, "操作失败,下次注意!!!", "信息修改", JOptionPane.YES_NO_CANCEL_OPTION);throw new RuntimeException(ex);}if (flag != 0) {JOptionPane.showConfirmDialog(null, "操作成功,下次注意!!!", "信息修改", JOptionPane.YES_NO_CANCEL_OPTION);}}});

任课老师信息:通过遍历cou_stu表,将符合(sid=JTName)条件的cid输出,在course表中遍历,将得到的一些列教师号到Teacher表中对比以表格形式输出匹配的老师的信息

核心代码:

Vector rowdata=new Vector<>();Vector head=new Vector();head.add("课程");head.add("教师编号");head.add("姓名");head.add("性别");head.add("电话");head.add("学院");String sql="select distinct cid from cou_stu where sid="+jTName.getText();System.out.println(sql);stmt=con.createStatement();rs=stmt.executeQuery(sql);while (rs.next()){String sql1="select  c_teacher,c_name from course where c_id="+rs.getString("cid");System.out.println(sql1);stmt1=con.createStatement();rs1=stmt1.executeQuery(sql1);while (rs1.next()){String sql2="select  id,name,gender,tel,college from teacher where id="+rs1.getString("c_teacher");System.out.println(sql2);stmt2=con.createStatement();rs2=stmt2.executeQuery(sql2);while (rs2.next()) {Vector hang = new Vector();hang.add(rs1.getString("c_name"));hang.add(rs2.getString("id"));hang.add(rs2.getString("name"));hang.add(rs2.getString("gender"));hang.add(rs2.getString("tel"));hang.add(rs2.getString("college"));rowdata.add(hang);}}}

选课结果:(与任课老师模块查询方式类似,只是少了一步查询老师的信息。)

核心代码:

Vector rowdata=new Vector();Vector headtitle=new Vector();headtitle.add("课序号");headtitle.add("课程名");headtitle.add("授课老师编号");headtitle.add("授课时间");headtitle.add("授课地点");headtitle.add("周次");headtitle.add("课程类型");headtitle.add("学分");String sql="select distinct cid from cou_stu where state=1 && sid="+jTName.getText();System.out.println(sql);stmt=con.createStatement();rs=stmt.executeQuery(sql);while (rs.next()){String sql1="select * from course where c_id="+rs.getString("cid");System.out.println(sql1);stmt1=con.createStatement();rs1=stmt1.executeQuery(sql1);while(rs1.next()){Vector hang=new Vector();hang.add(rs1.getInt("c_id"));hang.add(rs1.getString("c_name"));hang.add(rs1.getString("c_teacher"));hang.add(rs1.getString("c_time"));hang.add(rs1.getString("c_place"));hang.add(rs1.getString("c_week"));hang.add(rs1.getString("c_type"));hang.add(rs1.getString("c_credit"));rowdata.add(hang);}}JTable jTable=new JTable(rowdata,headtitle);

3.2.3 教师端界面

 个人信息查询与修改与学生相同,只是在Teacher表中查询。

核心代码:

String sql = "select *from teacher where id=" + jTName.getText();System.out.println(sql);stmt = con.createStatement();rs = stmt.executeQuery(sql);while (rs.next()) {jLabel1.setText("教师编号:" + rs.getString("id"));jLabel2.setText("姓名   :" + rs.getString("name"));jLabel3.setText("性别   :" + rs.getString("gender"));jLabel4.setText("电话   :" + rs.getString("tel"));jLabel5.setText("出生年月:" + rs.getString("birthday"));jLabel6.setText("学历   :" + rs.getString("degree"));jLabel7.setText("职称   :" + rs.getString("pTitle"));jLabel8.setText("入职年份:" + rs.getString("entrytime"));jLabel9.setText("学院   :" + rs.getString("college"));}jchange.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {jf.setVisible(false);change_per();jf.setVisible(true);}});jflash.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {try {jf.setVisible(false);perinfor();} catch (SQLException ex) {throw new RuntimeException(ex);}}});}

  

查看选课结果,一个老师可能有多个课程,所以先遍历course表,查询符合这个(c_id=JTName)的所有课程,每个课程开一个窗口,以表格的形式展示选择该课的学生信息(方法类似学生的教师查询)。

核心代码:

Vector title=new Vector();title.add("学号");title.add("姓名");title.add("性别");title.add("年龄");title.add("专业");title.add("生源");String sql="select c_id,c_name from course where c_teacher="+jTName.getText();System.out.println(sql);stmt=con.createStatement();rs=stmt.executeQuery(sql);while (rs.next()){String str=rs.getString("c_name");//每次开一个窗口JFrame jFrame=new JFrame(str);jFrame.setBounds(0,0,screenWidth,screenHeight);JMenuBar jMenuBar=new JMenuBar();JLabel jLabel=new JLabel("?");jMenuBar.add(jLabel);jFrame.setJMenuBar(jMenuBar);Vector rowdata=new Vector();String sql1="select distinct sid from cou_stu where cid="+rs.getString("c_id")+"&& state=1";System.out.println(sql1);stmt1=con.createStatement();rs1=stmt1.executeQuery(sql1);int count=0;while(rs1.next()){String sql2="select * from student where s_id="+rs1.getString("sid");System.out.println(sql2);stmt2=con.createStatement();rs2=stmt2.executeQuery(sql2);while (rs2.next()){count++;Vector hang=new Vector();hang.add(rs2.getString("s_id"));hang.add(rs2.getString("s_name"));hang.add(rs2.getString("s_gender"));hang.add(rs2.getString("s_age"));hang.add(rs2.getString("s_specialty"));hang.add(rs2.getString("s_source"));rowdata.add(hang);}}jLabel.setText("本次共计"+count+"名学生选择此课");JTable jTable=new JTable(rowdata,title);

4 测试结果

4.1登录界面测试

正常测试:

异常测试:

4.2 学生端界面测试

异常测试:

4.3  教师界面测试

正常情况:

异常情况:

4.4 管理员界面测试

异常测试:

5 总结

刚开始接触数据库,我并不理解,通过网上课程的学习,有了简单的理解,通过这个课设,我深入理解了数据库的应用和java的图形化界面设计,还偶然学会了函数式编程。在我所有的程序里,我用的最多的是数据库的查询、插入、删除、修改功能,然后也用了大量的捕获异常处理,总的来说能做出自己的系统,还教会了我一种自主学习的思想,在日后的学习中我会继续成长,开发出更具有价值的软件。

参考文献:

[1] CSDN博主「兔老大RabbitMQ」的原创文章原文链接:https://blog.csdn.net/hebtu666/article/details/115613082

[2] CSDN博主「放肆青春的博客」的原创文章原文链接:https://blog.csdn.net/qq_35038153/article/details/77113076?spm=1001.2014.3001.5506

 [3] CSDN博主「随缘。。。。」的原创文章原文链接:https://blog.csdn.net/suiyuanxiangyu/article/details/108064964?spm=1001.2014.3001.5506

附录

相关文章:

校园教务管理系统

学年论文&#xff08;课程设计&#xff09; 题目&#xff1a; 信息管理系统 校园教务管理系统 摘要&#xff1a;数据库技术是现代信息科学与技术的重要组成部分&#xff0c;是计算机数据处理与信息管理系统的核心&#xff0c;随着计算机技术的发展&#xff0c;数据库技…...

【LeetCode热题100】【双指针】接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 示例 1&#xff1a; 输入&#xff1a;height [0,1,0,2,1,0,1,3,2,1,2,1] 输出&#xff1a;6 解释&#xff1a;上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] …...

软件工程-(可行性分析、需求分析)

目录 一.可行性研究 1.1定义 1.2项目背景 1.3三方面研究目标系统的可行性 1.3.1技术可行性分析 1.3.2 经济可行性分析 1.3.3 市场可行性分析 1.4. 数据流图 数据字典&#xff08;DD&#xff09; 1.5风险评估 1.6结论与建议 二、需求分析 引言 项目概述 利益相关者分析…...

HuggingFace学习笔记--BitFit高效微调

1--BitFit高效微调 BitFit&#xff0c;全称是 bias-term fine-tuning&#xff0c;其高效微调只去微调带有 bias 的参数&#xff0c;其余参数全部固定&#xff1b; 2--实例代码 from datasets import load_from_disk from transformers import AutoTokenizer, AutoModelForCaus…...

阅读笔记|A Survey of Large Language Models

阅读笔记 模型选择&#xff1a;是否一定要选择参数量巨大的模型&#xff1f;如果需要更好的泛化能力&#xff0c;用于处理非单一的任务&#xff0c;例如对话&#xff0c;则可用选更大的模型&#xff1b;而对于单一明确的任务&#xff0c;则不一定越大越好&#xff0c;参数小一…...

JSP 设置静态文件资源访问路径

这里 我们先在 WEB目录webapp 下创建一个包 叫 static 就用它来存静态资源 然后 我们扔一张图片进去 我们直接这样写 如下图 找到父级目录 然后寻找下面的 static 下的 img.png 运行代码 很明显 它没有找到 这边 我们直接找到 webapp目录下的 WEB-INF目录下的 web.xml 加入…...

【Pytorch】Visualization of Feature Maps(4)——Saliency Maps

学习参考来自 Saliency Maps的原理与简单实现(使用Pytorch实现)https://github.com/wmn7/ML_Practice/tree/master/2019_07_08/Saliency%20Maps Saliency Maps 原理 《Deep Inside Convolutional Networks: Visualising Image Classification Models and Saliency Maps》&…...

java第三十课

电商项目&#xff08;前台&#xff09;&#xff1a; 登录接口 注册接口后台&#xff1a; 注册审核&#xff1a;建一个线程类 注意程序中的一个问题。 这里是 5 条记录&#xff0c;2 条记录显示应该是 3 页&#xff0c;实际操作过程 有审核机制&#xff0c;出现了数据记录动态变…...

Scala--2

package scala02object Scala07_typeCast {def main(args: Array[String]): Unit {// TODO 隐式转换// 自动转换val b: Byte 10var i: Int b 10val l: Long b 10 100Lval fl: Float b 10 100L 10.5fval d: Double b 10 100L 10.5f 20.00println(d.getClass…...

【SQL SERVER】定时任务

oracle是定时JOB&#xff0c;sqlserver是创建作业&#xff0c;通过sqlserver代理实现 先看SQL SERVER代理得服务有没有开 选择计算机右键——>管理——>服务与应用程序——>服务——>SQL server 代理 然后把SQL server 代理&#xff08;MSSQLSERVER&#xff09;启…...

MyBatis-Plus学习笔记(无脑cv即可)

1.MyBatis-Plus 1.1特性 无侵入&#xff1a;只做增强不做改变&#xff0c;引入它不会对现有工程产生影响&#xff0c;如丝般顺滑损耗小&#xff1a;启动即会自动注入基本 CURD&#xff0c;性能基本无损耗&#xff0c;直接面向对象操作强大的 CRUD 操作&#xff1a;内置通用 M…...

【VUE】watch 监听失效

如果你遇见了这个问题&#xff0c;那么尝试在 watch 函数中设置 { deep: true } 选项。这告诉 Vue 监听对象或数组内部的变化&#xff0c;就像下面这样&#xff1a; watch(()>chatStore.dataSources,(oldValue, newValue)>{// 监听执行逻辑 }, { deep: true })嗯&#x…...

python的异常处理批量执行网络设备的巡检命令

前言 在网络设备数量超过千台甚至上万台的大型企业网中&#xff0c;难免会遇到某些设备的管理IP地址不通&#xff0c;SSH连接失败的情况&#xff0c;设备数量越多&#xff0c;这种情况发生的概率越高。 这个时候如果你想用python批量配置所有的设备&#xff0c;就一定要注意这…...

react native 环境准备

一、必备安装 1、安装node 注意 Node 的版本应大于等于 16&#xff0c;安装完 Node 后建议设置 npm 镜像&#xff08;淘宝源&#xff09;以加速后面的过程&#xff08;或使用科学上网工具&#xff09;。 node下载地址&#xff1a;Download | Node.js设置淘宝源 npm config s…...

PGSQL(PostgreSQL)数据库安装教程

安装包下载 下载地址 下载后点击exe安装包 设置的data存储路径 设置密码 设置端口 安装完毕&#xff0c;配置PGSQL的ip远程连接&#xff0c;pg_hba.conf&#xff0c;postgresql.conf&#xff0c;需要更改这两个文件 pg_hba.conf 最后增加一行 host all all …...

识别和修复网站上损坏链接的最佳实践

如果您有一个网站&#xff0c;我们知道您花了很多时间在它上面&#xff0c;以使其成为最好的资源。如果你的链接不起作用&#xff0c;你的努力可能是徒劳的。您网站上的断开链接可能会以两种方式损害您的业务&#xff1a; 它们对企业来说是可怕的&#xff0c;因为当消费者点击…...

使用Navicat连接MySQL出现的一些错误

目录 一、错误一&#xff1a;防火墙未关闭 二、错误二&#xff1a;安全组问题 三、错误三&#xff1a;MySQL密码的加密方式 四、错误四&#xff1a;修改my.cnf配置文件 一、错误一&#xff1a;防火墙未关闭 #查看防火墙状态 firewall-cmd --state#关闭防…...

4G基站BBU、RRU、核心网设备

目录 前言 基站 核心网 信号传输 前言 移动运营商在建设4G基站的时候&#xff0c;除了建设一座铁塔之外&#xff0c;更重要的是建设搭载铁塔之上的移动通信设备&#xff0c;这篇博客主要介绍BBU&#xff0c;RRU以及机房的核心网等设备。 基站 一个基站有BBU&#xff0c;…...

iphone/安卓手机如何使用burp抓包

iphone 1. 电脑 ipconfig /all 获取电脑网卡ip&#xff1a; 192.168.31.10 2. 电脑burp上面打开设置&#xff0c;proxy&#xff0c;增加一条 192.168.31.10:8080 3. 4. 手机进入设置 -> Wi-Fi -> 找到HTTP代理选项&#xff0c;选择手动&#xff0c;192.168.31.10:8080 …...

springboot云HIS医院信息综合管理平台源码

满足基层医院机构各类业务需要的健康云HIS系统。该系统能帮助基层医院机构完成日常各类业务&#xff0c;提供病患挂号支持、病患问诊、电子病历、开药发药、会员管理、统计查询、医生站和护士站等一系列常规功能&#xff0c;能与公卫、PACS等各类外部系统融合&#xff0c;实现多…...

【视觉SLAM十四讲学习笔记】第三讲——四元数

专栏系列文章如下&#xff1a; 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵 【视觉SLAM十四讲学习笔记】第三讲——旋转向量和欧拉角 本章将介绍视觉SLAM的基本问题之一&#x…...

Linux系统之部署Plik临时文件上传系统

Linux系统之部署Plik临时文件上传系统 一、Plik介绍1.1 Plik简介1.2 Plik特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本 四、下载Plik软件包4.1 创建下载目录4.2 下载Plik软件包4.3 查看下载的Plik软件…...

【EI征稿中#先投稿,先送审#】第三届网络安全、人工智能与数字经济国际学术会议(CSAIDE 2024)

第三届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2024&#xff09; 2024 3rd International Conference on Cyber Security, Artificial Intelligence and Digital Economy 第二届网络安全、人工智能与数字经济国际学术会议&#xff08;CSAIDE 2023&…...

『亚马逊云科技产品测评』活动征文|基于亚马逊云EC2搭建OA系统

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 Developer Centre, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道 亚马逊EC2云服务器&#xff08;Elastic Compute Cloud&#xff09;是亚马…...

Mysql更新varchar存储的Josn数据

Mysql更新varchar存储的Josn数据 记录一次mysql操作varchar格式存储的json字符串数据 1、检查版本 -- 版本5.7以上才可以能执行json操作 select version(); 2、创建测试数据 -- 创建测试表及测试数据 CREATE TABLE test_json_table AS SELECT UUID(), {"test1": …...

JSON.stringify与JSON.parse详解与实践

目录 JSON.stringify 简介 主要用途&#xff1a; API 实践1&#xff1a; 实践2&#xff1a; JSON.parse 简介 API 实践1 实践2 JSON.stringify 简介 用于把JavaScript对象、数组、值、布尔值等序列化成字符串形式。 主要用途&#xff1a; 得到的数据通常有以下主…...

vue 基础

双向绑定的原理 双向绑定是一种数据绑定技术&#xff0c;它能够实现数据的自动同步更新&#xff0c;即当用户修改了数据时&#xff0c;界面也会随之自动更新&#xff0c;反之亦然。其原理如下&#xff1a; 数据模型&#xff1a;双向绑定的第一步是建立一个数据模型&#xff0c…...

使用axios下载后端接口返回的文件流格式文件

在实际开发中&#xff0c;我们经常会遇到下载文件的需求&#xff0c;一般情况下接口最好的处理方式为上传到文件对象存储服务器&#xff0c;然后给前端返回一个下载文件的URL&#xff0c;前端直接打开链接下载就可以了&#xff0c;但…在下载数据量大且参数复杂的情况下&#x…...

在macOS上使用Homebrew安装PHP的完整指南

安装最新版本的PHP 步骤1: 安装Homebrew 在安装最新版本的PHP之前&#xff0c;确保你的macOS系统上已经安装了Homebrew。如果尚未安装&#xff0c;打开终端并运行以下命令&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install…...

图片处理OpenCV IMDecode模式说明【生产问题处理】

OpenCV IMDecode模式说明【生产问题处理】 1 前言 今天售后同事反馈说客户使用我们的图片处理&#xff0c;将PNG图片处理为JPG图片之后&#xff0c;变为了白板。 我们图片处理使用的是openCV来进行处理 2 分析 2.1 图片是否损坏&#xff1a;非标准PNG头部 于是&#xff0c;马…...