大三上学期MySQL数据库大作业(swiftUI编写)

大作业效果

我做的是一款微型App,简单实现了一下增删改查四个功能,用的是非常小众的swift语言

先看一下效果,最简单的初始界面以及内嵌之后的App界面优化
最简单的如图(其实只要完成到这样算完成任务了😂)

在这里插入图片描述
优化之后:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

大作业简介

本次数据库实验完成一个基于数据管理系统的App
编写环境:MacOS12 Monterey
编译器:Xcode13.0
适配平台:IOS 14及以上
使用语言:SwiftUl

大作业步骤

前期搭建工具

1. 编译环境准备

一个能够使用xcode12及以上版本的电脑(可以是虚拟机)

2. 安装相关软件

安装XAMPP,安装链接,用于在网页端管理Mysql,设置步骤如下
在这里插入图片描述
在这里插入图片描述

3. 参照视频教程

原视频链接

接着按照这个视频的操作来完成基础的功能设置

MySQL数据库&&SwiftUI2.0教程

4. 基础代码完成

视频中数据库增删改查的代如下,基本非常类似,学会一个即可

添加数据功能函数
func createPost(parameters:[String:Any]) {
	guard let url = URL(string: "\(prefixUrl)/createPost") else{
		print("Not found url")
		return
	}
	let data = try! JSONSerialization.data(withJSONObject: parameters)
	var request = URLRequest(url: url)
	request.httpMethod = "POST"
	request.httpBody = data
	request.setValue("application/json", forHTTPHeaderField: "Content-Type")
	URLSession.shared.dataTask(with: request){ (data, res, error) in
		if error != nil{
			print("error",error?.localizedDescription ?? "")
			return
		}
		do {
			if let data = data{
				let result = try JSONDecoder().decode(DataModel.self, from: data)
				DispatchQueue.main.async {
					print(result)
			}
		} else {
				print("No data")
			}
		} catch let JsonError {
			print("fetch json error", JsonError.localizedDescription)
		}
	}
	.resume()
}
更新数据功能函数
func updatePost(parameters:[String:Any]) {
	guard let url = URL(string: "\(prefixUrl)/updatePost") else{
		print("Not found url")
		return
	}
	let data = try! JSONSerialization.data(withJSONObject: parameters)
	var request = URLRequest(url: url)
	request.httpMethod = "PUT"
	request.httpBody = data
	request.setValue("application/json", forHTTPHeaderField: "Content-Type")
	URLSession.shared.dataTask(with: request){ (data, res, error) in
	if error != nil{
		print("error",error?.localizedDescription ?? "")
		return
	}
	do {
		if let data = data{
			let result = try JSONDecoder().decode(DataModel.self, from: data)
			DispatchQueue.main.async {
				print(result)
			}
		} else {
			print("No data")
		}
	} catch let JsonError {
			print("fetch json error", JsonError.localizedDescription)
		}
	}
	.resume()
}
删除数据功能函数
func deletePost(parameters:[String:Any]) {
	guard let url = URL(string: "\(prefixUrl)/deletePost") else{
		print("Not found url")
		return
	}
	let data = try! JSONSerialization.data(withJSONObject: parameters)
	var request = URLRequest(url: url)
	request.httpMethod = "DELETE"
	request.httpBody = data
	request.setValue("application/json", forHTTPHeaderField: "Content-Type")
	URLSession.shared.dataTask(with: request){ (data, res, error) in
	if error != nil{
		print("error",error?.localizedDescription ?? "")
		return
	}
	do {
		if let data = data{
			let result = try JSONDecoder().decode(DataModel.self, from: data)
			DispatchQueue.main.async {
				print(result)
			}
		} else {
			print("No data")
		}
	} catch let JsonError {
		print("fetch json error", JsonError.localizedDescription)
		}
	}
	.resume()
}
查询数据功能函数
func fetchPosts() {
	guard let url = URL(string: "\(prefixUrl)/posts") else{
		print("Not found url")
		return
	}
	URLSession.shared.dataTask(with: url){ (data, res, error) in
	if error != nil{
		print("error",error?.localizedDescription ?? "")
		return
	}
	do {
		if let data = data{
			let result = try JSONDecoder().decode(DataModel.self, from: data)
			DispatchQueue.main.async {
				self.items = result.data
			}
		} else {
				print("No data")
			}
		} catch let JsonError {
			print("fetch json error", JsonError.localizedDescription)
		}
	}
	.resume()
}

至此,就完成了大作业的前期基本工作。

后期优化工作

后期主要将刚才搭建的数据库想办法嵌入实际的App中,实现三个功能页面:注册登录页面,用语提示页面,个人动态发布页面,优化部分属于八仙过海,可以自由发挥,我就不发代码了,简单记录一下构思的过程。

1. 概念结构设计

在这里插入图片描述

2. 逻辑结构设计

关系模式

用户(用户编号,用户名,账户,密码)
动态(动态编号,评论数,点赞量,转发数,发布时间,用户编号)
常用语(语句编号,语句标题,语句内容,用户编号)

依赖关系

用户—>动态用户—>常用语
用户—>用户账号用户—>用户密码
候选码为用户,由于逻辑关系极为简单,所以自动满足3NF,无需进行调整

3. 数据流图(我直接画流程图😂)

注册与登录界面

在这里插入图片描述

常用语提示界面

在这里插入图片描述

个人动态发布页面

在这里插入图片描述

4. 数据字典

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

大作业建议

有一些第三方库可以实现对于本地MySQL数据库的访问,github链接如下:
mysql-kit
mysql-swift
fluent-mysql-driver

记录完毕😇,over~

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

血月无华AUV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值