android开发c s架构,【开源】基于C/S架构的Android员工增删改查客户端

背景:html

期末快到了,各门课的课程设计都要来临了,最近Java课的课程设计就在想着作什么好,因而想了下弄一个android的应用吧,因而便有下文了。java

刚入门android,技术很不过关,勉强在百度copy 拼凑各类代码才作出这种效果,大神们勿喷。mysql

课程设计——基于C/S架构的Android员工增删改查客户端android

服务端截图:sql

1b9a0c4209ac48a8b7407ccb.html

客户端:数据库

1b9a0c4209ac48a8b7407ccb.html

首先点击获取数据库按钮从服务端获取数据库设计模式

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

点击第二个按钮——课程设计要求载入要求运算页面数组

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

客户端演示到此。多线程

数据库(mysql)设计逻辑截图:架构

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

1b9a0c4209ac48a8b7407ccb.html

伪开发文档:

服务端结构图:

1b9a0c4209ac48a8b7407ccb.html

DbHelper.java ———————-数据库辅助类,便于服务端执行SQL语句

Node.java—————————-链接用户的结点类,用于统计客户端链接次数

Service.java————————–启动服务的后台类

ServiceListener.java—————-服务监听类,有客户端链接时会增长结点与启动ServiceReceive类

ServiceReceive.java—————-数据库服务类,当客户端链接成功时接收客户端发来的SQL语句

ServiceUI.java———————–界面类

SqlService.java———————-链接SQL的类,执行完SQL后将值返回给客户端

UserLinkList.java——————-链表类,统计客户端链接的LinkList

客户端目录结构图:

1b9a0c4209ac48a8b7407ccb.html

主要起做用的类有:

SlideMenu.java——————一个侧滑菜单基类

BaseActivity.java—————自定义基类Activity

HomeActivity.java————–主界面的相应控制类,控制3个按钮的去向

ImageListActivity.java———列表加载类,用于加载头像、ID、姓名

NetTool.java———————异步加载图片插件辅助类

StartPerson.java—————–载入我的页面时启用的类,用于加载详细信息

Task.java————————-点击课程设计按钮时加载的类,用于读取员工工资、提取部件价值最大的员工工资资料、计算工厂某部件停产后影响多少员工

心得:

从截图的项目标题名称可看出课程设计制做日期是2013-12-11,时间比较仓促因此开发过程比较紊乱。

服务端相对来讲调理比较清晰,遵循MVC开发模式。服务端的结构是借助综合试验3的局域网群聊的服务端代码的结构开发的。优化了综合3服务端的代码结构,综合3的代码条理清晰,但代码书写不太科学,类与类的通讯违背了高内聚低耦合的准则。而优化后的代码条理更加清晰,强化了业务逻辑,将视图和模型彻底分离开。从而达到高效的运行和增长二次开发的简易性、加强代码可读性。

而客户端是基于Android平台上运行的,界面采用xml设计,引用了几个便捷的开源项目,好比多线程异步加载图片等。

客户端的代码条理结构比较紊乱,不方便参考与学习,没有将业务逻辑和显示层分开,因此这种设计模式不便于学习与开发。往后有空会作代码整理。

难点:

一、原生Java中不线程与UI的通讯是可直接传参通讯,而在安卓中线程与UI的通讯在该系统上是属于非法行为,必须实例化一个Handler与Message进行传参,这是第一个我的感受比较难的地方。

二、数据库返回的数据类型是ResultSet,想要用ObjectOutputStream writeObject的话是没法写出流的,查看了开发文档,该对象是没有实现对象序列化接口的,因此要将对象输出必需要输出有实现对象序列化接口的对象,而Vector数组容器对象正好实现了对象序列化接口,能够将ResultSet的数据add到Vector中,再用writeObject传输对象。据网上说Vector效率比较低,但这也是跟本地机器配置高低有关,暂不作优化考虑。

涉及到的知识点:

一、Java中jdbc的数据库链接

二、Socket通讯

三、Android中多线程异步加载图片

四、Android线程与UI的通讯

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值