[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来构建. 这篇文章是我通过研究和 ...
随机推荐
- accelerated C++ 中查找url(学习笔记)
这个程序用来查找被称为url(统一资源地)的万维网地址,输入一行包含url的字符串,程序会帮你识别并输出字符串里所包含的全部url. url的格式: protocol-name(协议名称)://res ...
- Spring4.0+Hibernate4.0+Struts2.3整合包括增删改查案例,解决整合中出现的异常
源码下载:http://download.csdn.net/detail/cmcc_1234/7034775 ======================Application.xml======== ...
- sqlserver 自增字段修改为普通主键字段
--增加备份字段alter Table tableName add columnNameBak bigint ; --将主键自增字段 赋值到备份字段update tableNameset column ...
- 为Eclipse/MyEclipse添加JDK API Document帮助文档
1.下载 Java SE Development Kit 8 Documentation . 2.启动Eclipse,Window-Preference-Java-Installed JREs: 3. ...
- Castle IOC容器组件生命周期管理
主要内容 1.生命处理方式 2.自定义生命处理方式 3.生命周期处理 一.生命处理方式 我们通常创建一个组件的实例使用new关键字,这样每次创建出来的都是一个新的实例,如果想要组件只有一个实例,我们会 ...
- Android ImageView scaleType属性
scaleType属性 文章来源:http://blog.csdn.net/xilibi2003/article/details/6628668 使用ImageView时经常会用到scaleType属 ...
- ActiveMQ讯息传送机制以及ACK机制详解
[http://www.ylzx8.cn/ruanjiangongcheng/software-architecture-design/11922.html] AcitveMQ:消息存储和分发组件,涉 ...
- c++中从一段字符串中提取数字
采用标准输入输出: 输入:12&3 34*133^3131 13031* 输出:12 3 34 133 3131 13031 思路,先将整个输入存进一个字符串,再解析字符串,这样运行速度会 ...
- (剑指Offer)面试题27:二叉搜索树与双向链表
题目: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 二叉树的定义如下: struct TreeNode{ int val; Tr ...
- 【绝密外泄】风哥Oracle数据库DBA高级工程师培训视频教程与内部资料v0.1
[绝密外泄]风哥Oracle数据库DBA高级工程师培训视频教程与内部资料v0.1 由于是[绝密外泄]资料,防止被查,需要的小伙伴赶紧下载附件中的课件文档.由于视频太大了,已放在百度网盘了,已经在附中说 ...