发表于: 2017-05-26 21:02:16

1 1268


今日完成

学习SpringMVC


MVC三元组的概念:

Model:数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据)和服务层(行为)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。

View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。

Controller(控制器):接受用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。


Web MVC

模型-视图-控制器概念和标准MVC一样,在Web MVC模式下,模型无法主动推数据给视图,如果用户想要视图更新,需要再发送一次请求(即请求-响应模型)。


Spring Web MVC

Spring Web MVC是一种基于java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是简化我们日常Web开发的。

Spring Web MVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器管理和视图解析器(View Resolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request,response)方法)的实现;支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例有限原则)的契约式编程支持。


Spring Web MVC架构

Spring Web MVC框架也是一个基于请求驱动的Web框架,并且使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理。


 通过@Controller和@RequestMapping完成前台页面


通过Mybatis-generator生成Usermapper和User

generator.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/example?useUnicode=true&characterEncoding=utf-8
username=root
password=admin

#entity 包名和 java目录
modelPackage=com.springmvc.entity
modelProject=src/main/java
#sqlmap包名 和resources目录
sqlPackage=sqlmap
sqlProject=src/main/resources
#mapper包名和 java目录
mapperPackage=com.springmvc.dao
mapperProject=src/main/java

table=user

generatorConfig.xml配置通用

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
       "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--导入属性配置 -->
   <properties resource="generator.properties"/>

<classPathEntry
           location="C:\Program Files\maven\apache-maven-3.5.0\reposistory\mysql\mysql-connector-java\5.1.29\mysql-connector-java-5.1.29.jar" />
<context id="context1">
<!-- 注释 -->
       <commentGenerator>
<property name="suppressAllComments" value="true" /><!-- 是否取消注释 -->
           <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳 -->
       </commentGenerator>

<jdbcConnection driverClass="${driver}"
                       connectionURL="${url}"
                       userId="${username}"
                       password="${password}" />

<!-- 类型转换 -->
       <javaTypeResolver>
<!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) -->
           <property name="forceBigDecimals" value="false" />
</javaTypeResolver>

<javaModelGenerator targetPackage="${modelPackage}"
                           targetProject="${modelProject}" />
<sqlMapGenerator targetPackage="${sqlPackage}" targetProject="${sqlProject}" />
<javaClientGenerator targetPackage="${mapperPackage}"
                            targetProject="${mapperProject}" type="XMLMAPPER" />

<!-- 如果需要通配所有表 直接用sql的通配符    %即可 -->
       <table schema="" tableName="${table}" enableCountByExample="false"
              enableUpdateByExample="false" enableDeleteByExample="false"
              enableSelectByExample="false" selectByExampleQueryId="false"/>

</context>
</generatorConfiguration>

继续一点点学习调用数据库数据到前台页面显示


收获

MVC的概念和结构

Mybatis-Genrator自动生成实体类

@Controller和@RequestMapper实现简单的前后台交互

困难

明日计划

前台页面进行数据库操作同时显示


返回列表 返回列表
评论

    分享到