[Android开发]- MVC的架构实现登录模块-1
本系列博客主要展示一下,在C-S(Client - Server)系统开发当中,如何使用MVC的架构来实现安卓端的一个登录验证的模块。如果你能有基本的数据库开发,WEB开发,和安卓开发的知识,那么理解起来会更加容易一些。
本文主要从下面几点开始:
- MVC的介绍
- 必备开发环境
- 后台 - 数据库的准备
一、MVC的介绍
百度百科上面的定义是这样的:
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
根据上面的定义,我们可以知道MVC就是一种软件设计的典范,能够降低M、V、和C模块之间的耦合性,那如何应用到C-S系统的开发当中呢?请看下图 1:

从上图,我们可以知道在C-S的系统开发中,客户端(Client)就是充当将服务层提供的数据展示出来的视图(View), 后台服务器主要充当控制器(Control),而数据库中的各种表充当的是模型(Model)。 这样做有很多好处,比如:
安卓客户端开发和服务器开发可以完全独立进行:客户端告诉服务器需要的信息是哪些,服务器就提供相应的服务把数据通过JSON的方式(或者方法)返回给客户端。这个只要在开发之前确定好该接口文档就没有问题了;
后台服务扩展起来非常容易,比如在开发过程中服务器已经完成了好友列表的获取,那么在MVC这样的架构之下,要想实现黑名单列表的获取可能只需要在service类中添加一个方法就行了;
到这里,你大概能够明白MVC的是怎样一个东西,在C-S的开发中又是怎样的一个展示。
二、必备开发环境
如下:
Android Studio
一款基于IntelliJ IDEA的Android集成开发工具,比Eclipse ADT要智能太多;用于安卓客户端的开发。Eclipse Java EE IDE Mars.1 for Web Developers
用于服务器端的开发,最好是集成了Tomcat 7.0 服务器;当然,不一定是Eclipse Mars版本,其他能用来开发java web程序的版本都可以,myeclipse也都是大同小异的;- Tomcat 7.0 服务器
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。[来自百度]就是用来运行在Eclipse中开发好的web服务程序。
Eclipse中配置Tomcat服务器可以参考下面的链接:
- MySql 数据库
主要用来创建数据库。各种版本的Mysql都可以,其它的关系型数据库也没问题,区别在于当服务器对数据库中的数据进行访问的时候采用的链接数据库的驱动jar会不同。在本教程中只展示对Mysql数据的连接。
三、后台-数据库的准备
下面的展示的步骤都是在Max os X系统中的操作,在其他系统当中,只需替换成该操作系统中相应的操作即可
开启数据库服务,如图 1-2 :

打开终端,连接到本地数据库,如图 1-3:

- 创建一个独立的数据库TEST1,并且在该数据库当中创建一个包含id(自增),name,password列的表user;并且在这个数据库当中添加一条记录,命令如下,整个过程如图 1-4所示:
create table user (id int primary key auto_increment,name char(30),password varchar(20));
create database TEST1;
use TEST1
insert into user(name,password) values('mvcuser','mvcuser123');
select * from user;

四、总结
至此,我们已经对MVC有了一定的了解,并且准备好了之后开发当中的数据库和测试数据!
声明:
- 联系作者,新浪微博私信 @谷谷_z
- 如果在文章当中发现有描述错误的地方,还请您不吝指出,万分感谢!
- 此文章系本人原创作品,转发请注明出处!
[Android开发]- MVC的架构实现登录模块-1的更多相关文章
- Android开发-浅谈架构(二)
写在前面的话 我记得有一期罗胖的<罗辑思维>中他提到 我们在这个碎片化 充满焦虑的时代该怎么学习--用30%的时间 了解70%该领域的知识然后迅速转移芳草鲜美的地方 像游牧民族那样.原话应 ...
- Android开发-浅谈架构(一)
写在前面的话 嗯 聊聊架构. 这段时间一直在维护旧项目. 包括自己之前写的新项目 越来越发现 一个架构清晰的项目往往让人赏心悦目.不至于在一个bug丢过来之后手足无措.包括以后别人接收自己的项目 能很 ...
- Window上python开发--4.Django的用户登录模块User
Android系统开发交流群:484966421 OSHome. 微信公众号:oshome2015 在搭建站点和web的应用程序时,用户的登录和管理是差点儿是每一个站点都必备的. 今天主要从一个实例了 ...
- 使用uni-app开发微信小程序之登录模块
从微信小程序官方发布的公告中我们可获知:小程序体验版.开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败,需使用 <button open-type=" ...
- 项目开发-->身份认证及用户登录模块
1.首先明确的两个问题 如何判断当前申请是由一个已登录用户发起的?如果Request.IsAuthenticated为true,则表示是一个已登录用户. 如何获取当前登录用户的登录名?如果是一个已登录 ...
- android开发新浪微博客户端 完整攻略 [新手必读]
开始接触学习android已经有3个礼拜了,一直都是对着android的sdk文档写Tutorials从Hello World到Notepad Tutorial算是初步入门了吧,刚好最近对微博感兴趣就 ...
- Android App的设计架构:MVC,MVP,MVVM与架构经验谈
相关:http://www.cnblogs.com/wytiger/p/5996876.html 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于 ...
- Android App的设计架构:MVC,MVP,MVVM与架构AAAAA
1. 架构设计的目的1.1 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.1.2 这样做的好处是使得程序在开发的过程中,开发人员只需要专注于一点,提高程序开发的效率,并且更容易进行后续 ...
- 转:Android开发中的MVP架构(最后链接资源不错)
Android开发中的MVP架构 最近越来越多的人开始谈论架构.我周围的同事和工程师也是如此.尽管我还不是特别深入理解MVP和DDD,但是我们的新项目还是决定通过MVP来构建. 这篇文章是我通过研究和 ...
随机推荐
- Cocos2d-x 关于Android.mk 自动读入CPP
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- 安装CiscoWorks LMS
安装CiscoWorks LMS,需要安装5张光盘,CiscoWorks LMS的安装步骤比较简单,在这里只介绍需要的重要步骤. 1.安装CD One 将CiscoWorks 2000 LMS CD ...
- python 加密解密
1. 使用base64 s1 = base64.encodestring('hello world') s2 = base64.decodestring(s1) print s1, s2 结果 1 2 ...
- Android中使用gzip传递数据
HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术.大流量的WEB站点常常使用GZIP压缩技术来减少文件大小,减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时 ...
- UVaLive 6802 Turtle Graphics (水题,模拟)
题意:给定一个坐标,和一行命令,按照命令走,问你有多少点会被访问超过一次. 析:很简单么,按命令模拟就好,注意有的点可能走了多次,只能记作一次. 代码如下: #pragma comment(linke ...
- CString 转 char*; wstring 转 string
1. CString 转 char* ); CString name; name.Format(_T("bookUC%d.txt"),m_ID); std::wstring _n ...
- easyui combobox筛选(拼音)
1.combobox本身的筛选 $('#cc').combobox({ filter: function(q, row){ var opts = $(this).combobox('options') ...
- iOS 在任意界面 Dismiss Keyboard
最近由于项目需要,有些时候我们需要在任意时刻dismiss掉键盘. 很自然的我们会想到键盘通知 UIKeyboardDidShowNotification和UIKeyboardDidHideNotif ...
- BZOJ 2768: [JLOI2010]冠军调查 最小割
2768: [JLOI2010]冠军调查 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2768 Description 一年一度的欧洲足 ...
- Codeforces Gym 100231B Intervals 线段树+二分+贪心
Intervals 题目连接: http://codeforces.com/gym/100231/attachments Description 给你n个区间,告诉你每个区间内都有ci个数 然后你需要 ...