基于Android + Web+ MySQL设计和开发微博应用

实践内容要求

①用Android开发微博客户端;
②用JSP或PHP开发微博Web服务器;
③用MySQL做Web服务器的后台数据库;
④可以发表微博、查看微博及微博列表等功能;
⑤可以发表评论功能;
⑥可以实现用户客户端登陆功能。

客户端效果图

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

微博应用系统设计

系统功能设计

1.客户端与服务器的数据交互:使用Json形式进行数据交互,将微博、评论数据进行通过alibaba的fastjson进行json格式的转换,再发送到服务器进行处理,服务器处理完成后反馈客户端操作是否成功;

2.用户登陆与注册:客户端向服务器发送请求,服务器与数据库进行连接交互,查询user表中信息,实现查询账号密码进行用户登陆或向表中插入新用户注册数据;

3.用户注销:用户注销后退出微博系统后,清空Android中activity当前栈,再新建一个栈返回至登陆页面,从而防止使用回退键返回登陆状态;

4.热门搜索:通过微博内容或用户账号搜索站内注册用户所发表微博,客户端发送搜索请求,服务器首先对数据库blog表中微博内容content进行搜索,通过SQL中like进行模糊查询,服务器得到查询结果不为空时返回客户端;若微博内容查询为空,则通过对数据库blog表中微博发布者writer进行查询微博;

5.微博列表:客户端登陆至微博主页时向服务器发送获取所有微博内容请求,服务器按date降序查询数据库blog表中全部内容,将结果以json形式返回到客户端,客户端从而完成主页面数据更新,列表形式显示微博;

6.发表微博与用户评论:客户端用户登陆成功后,新建微博或发表评论后向服务器发送对应请求,服务器获取客户端请求后,解析json数据,将数据进行持久化保存,插入数据库blog表和comment表中;

7.查看微博:用户点击微博列表项后,向服务器发送选中微博详细信息请求,服务器根据客户端请求blogID,查询blog表中全部信息,同时查询comment表中blogID对应得到全部评论信息,将查询结果封装早json数据中回传客户端,客户端进而显示微博详细信息,包括发布者、发布时间、微博内容、所有评论;

8.删除微博:用户查看微博时,判断打开微博的writer与登陆账号是否一致,若相同则用户为该微博的创建者,进而在fragment中动态加入子fargment显示删除按钮,用户点击删除后,客户端发送删除微博请求,服务器解析获取要删除微博的blogID,之后与数据库blog表交互删除对应微博,同时删除comment表中对应blogID的所有评论。

关键问题设计

1.服务器与mysql数据库建立连接

编写JdbcUtil工具类,在静态代码块中注册驱动,传入数据库连接路径,数据库账号密码,获取一个connection静态实例
在这里插入图片描述
2.客户端点击发送微博至服务器接收请求数据,更新数据库信息过程

①客户端点击发送微博后,启动发送微博的线程
在这里插入图片描述

新建微博线程后,实例化一个微博对象,初始化微博的发布者、创建时间、微博内容、评论数,并且将Microblog对象封装到json字符串,通过POST方法发送请求到服务器,需要设置编码格式为UTF-8,防止中文乱码,同时读取服务器处理请求后的返回结果,验证修改是否成功。

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

②服务器获取客户端请求数据,解析json字符串,获取微博对象,将microblog对象传入dao层函数add_blog函数中,新增微博,将处理结果返回给客户端

在这里插入图片描述

③通过Jdbc工具类建立数据库连接,通过PreparedStatement传递参数,将新增微博数据插入到数据库blog表中

在这里插入图片描述
3.根据微博内容或用户ID进行搜索

客户端点击搜索按钮后,发送一个异步的获取blog列表的请求,请求参数search为EditText中用户输入的搜索内容;
在这里插入图片描述

服务器接收客户端请求后,获取search参数,首先调用BlogDao中的blog_content进行blog表中微博内容content的查询,通过sql语句的like实现对blog表中content字段模糊查询,返回微博microblog的列表结果;若列表为空(或长度为0),则微博内容查询为空,则BlogDao中的blog_user进行blog表中对微博发布者writer的查询。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.用户登陆成功后主页面微博列表的显示

客户端在fragment的生命周期函数onResume中启动一个后台线程,向服务器发送请求获取全部微博内容,返回为微博列表List形式,再通过android适配器RecyclerView.Adapter更新主页面recyclerview的微博列表信息。
每次返回到主页时onResume都会调用进而异步获取首页微博,实现首页微博数据的更新。

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

服务器接收到客户端请求后,调用BlogDao中blog_all函数获取数据库中blog表中所有微博数据信息,返回microblog数组,再将其转换为json字符串回传给客户端。

在这里插入图片描述
4.用户自己创建的微博显示删除按钮,并实现微博删除功能

用户点击微博查看微博详情时,判断打开微博的writer与登陆账号是否一致,若相同则用户为该微博的创建者,进而在fragment中动态加入子fargment显示删除按钮,用户点击删除后,客户端向服务器发送删除微博请求
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

服务器解析json字符串,获取要删除微博的blogID,调用BlogDao中函数delete_blog删除数据库blog表中blogID对应微博数据,同时删除comment表中对应blogID的所有评论。

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

源码分享

百度网盘链接分享
链接:https://pan.baidu.com/s/1FTiLb6zT1BDdWliMgCP04Q
提取码:xyom


评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

_无感

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

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

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

打赏作者

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

抵扣说明:

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

余额充值