移动互联应用软件开发——考试
总阅读次
- 课程名称:《移动互联应用软件开发》
- 考试时间: 2016年12月22日**
星期四
**(09:00——11:00) - 考试地点:**
学思楼2-A302
**
填空
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。 简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
MyBatis 本是apache的一个开源项目**
iBatis
, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis
** 。MyBatis是一个基于Java的持久层框架。iBATIS提供的**持久层
**框架包括SQL Maps和Data Access Objects(DAO)MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
名词解释:
1、IOC控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器进行创建和维护
Di
依赖注入,是ioc的一种实现方式,目的是创建对象并组装对象之间的关系
AOP
面向切面的编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。
Dao
DAO设计模式是属于J2EE数据层的操作,使用DAO设计模式可以简化大量代码,增强程序的可移植性。Json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。MVC
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式。Model表示应用程序核心。View显示数据。Controller处理输入。Java Bean
JavaBean是用Java语言描述的软件组件模型,其实际上是一个类。这些类遵循一个接口格式,以便于使函数命名、底层行为以及继承或实现的行为,可以把类看作标准的JavaBean组件进行构造和应用。Maven
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
简述
简述运行咕饥后台生成工具需要的开发环境及步骤。
(1) 开发环境
JDK
Spring tools suite(或Eclipse IDE)
Apache Tomcat服务器
MySQL数据库
Navicat Premium(可选)
(2) 一键生成工具的使用步骤
1. 打开数据库,在数据库中建立好所需要的表
2. 打开STS,新建一个动态WEB项目
3. 将咕饥源代码中的pom.xml及web.xml文件拷入新建的动态WEB项目中
4. 利用ctrl + f将配置文件中的项目名全部替换成新建的动态WEB的项目名
5. 将该项目从STS中删除,然后以导入maven项目的方式的导入该项目
6. 右键src,选择Bulid Path,然后点击remove将它移出项目路径
7. 打开项目项目目录,将生成工具main文件夹拷入新项目中并建立一个code文件夹用于存放代码
8. 回到STS中右键项目名选择Refresh刷新列表
9. 将code文件夹以及main文件夹中的java和resource文件夹,右键选择Build Path将它添加到项目路径中
10. 点击src/main/java—resources,打开generator及jdbc.properties修改数据库链接信息
11. 找到util中的main函数,右键选择Run As——java application运行java代码
12. 将缺少的文件拷入新项目中
13. 选中项目单击右键,点击properties,然后选择Deployment,点击add导入maven。
14. 然后将项目放入tomcat服务器中运行
简述Mybatis的基本使用方法。
(1) 所需要Jar包,将 mybatis-x.x.x.jar 文件置于 classpath 中即可。
(2) 建立数据库并插入数据
(3) 建立Web项目把Jar包引入项目
(4) 建立实体类并完成实体类的接口
(5) 配置db.properties(数据库链接)
(6) 建立映射文件并配置configuration.xml
(7) 实现根据ID查询表单的功能
(8) 在mapper.xml中使用resultMap
(9) 在接口中增加增删改查的方法
(10) 在mapper.xml中增加相应的映射
(11) 编写测试程序Mybatis解决了原生JDBC的哪些问题。
1、 数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。
解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。
2、 Sql语句写在代码中造成代码不易维护,实际应用sql变化的可能较大,sql变动需要改变java代码。
解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。
3、 向sql语句传参数麻烦,因为sql语句的where条件不一定,可能多也可能少,占位符需要和参数一一对应。
解决:Mybatis自动将java对象映射至sql语句,通过statement中的parameterType定义输入参数的类型。
4、 对结果集解析麻烦,sql变化导致解析代码变化,且解析前需要遍历,如果能将数据库记录封装成pojo对象解析比较方便。
解决:Mybatis自动将sql执行结果映射至java对象,通过statement中的resultType定义输出结果的类型。
Java中的注解是什么,写出你知道的常用注解。
@Controller 负责注册一个bean 到spring 上下文中。
@RequestMapping 注解为控制器指定可以处理哪些 URL 请求。
@RequestBody 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上 ,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。 @ResponseBody 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。 @ModelAttribute 在方法定义上使用
@ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了
@ModelAttribute 的方法。 在方法的入参前使用
@ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数–绑定到对象中,再传入入参将方法入参对象添加到模型中。
@RequestParam 在处理方法入参处使用
@RequestParam 可以把请求参 数传递给请求方法。
@PathVariable 绑定 URL 占位符到入参。
@ExceptionHandler 注解到方法上,出现异常时会执行该方法。
@ControllerAdvice 使一个Contoller成为全局的异常处理类,类中用
@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常。@RequestMapping
有那些属性,作用是什么?
RequestMapping注解有六个属性,下面我们把她分成三类进行说明。
1、 value, method;
value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
2、 consumes,produces;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
3、 params,headers;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。SSM框架的工作流程是什么?
1.先写实体类entity,定义对象的属性,(可以参照数据库中表的字段来设置,数据库的设计应该在所有编码开始之前)。
2.写Mapper.xml(Mybatis),其中定义你的功能,对应要对数据库进行的那些操作,比如 insert、selectAll、selectByKey、delete、update等。
3.写Mapper.java,将Mapper.xml中的操作按照id映射成Java函数。
4.写Service.java,为控制层提供服务,接受控制层的参数,完成相应的功能,并返回给控制层。
5.写Controller.java,连接页面请求和服务层,获取页面请求的参数,通过自动装配,映射不同的URL到相应的处理函数,并获取参数,对参数进行处理,之后传给服务层。
写JSP页面调用,请求哪些参数,需要获取什么数据。对一个简单的商城项目进行需求分析(画出用例图及类图)
1)用户管理
2)购物管理
- 画出Spring的层次框架图
画出springmvc+mybaits的系统架构
- 谈谈你在搭建开发环境以及运行Web项目时遇到的坑以及你是如何解决的