准备工作:
## 7 导入省市区数据到数据库中
1. 从FTP下载SQL脚本文件
2. 把脚本文件移动到易于描述绝对路径的位置
3. 进入MySQL控制台
4. use  `xxx_xxx`  数据库
5. 运行`source e:\t_dict.sql`以执行该脚本文件    (  linux下的命令是  source /home/soft01/桌面/t_dict.sql;)
 
-------------------------------------------------------------------------------------------
 
## 获取省市区数据
### 目标
获取所有省的列表
根据省的代号,获取省的信息
获取某个省的所有市的列表
根据市的代号,获取市的信息
获取某个市的所有区的列表
根据区的代号,获取区的信息
 
 
------------------------------------------------------------------------------------------
 
 
### 创建实体类(分析前端页面,并依照数据库中各个表的字段写相应的实体类)
在`cn.zjtj.store.entity`包中创建3个实体类:
  public class Province {
private Integer id;
private String code;
private String name; // 构造方法,SET/GET,toString,实现Serializable
} public class City {
private Integer id;
private String provinceCode;
private String code;
private String name; // 构造方法,SET/GET,toString,实现Serializable
} public class Area {
private Integer id;
private String cityCode;
private String code;
private String name; // 构造方法,SET/GET,toString,实现Serializable
}
 
----------------------------------------------------------------------------------------------------------------------
###  持久层
创建`cn.zjtj.store.mapper.ProvinceMapper`接口,添加抽象方法:   
 /**
* 获取所有省的列表
*/
List<Province> getProvinceList(); /**
* 根据省的代号,获取省的信息
*/
Province getProvinceByCode(String provinceCode);
然后,在`resources\mappers\`下创建(复制粘贴再修改)`ProvinceMapper.xml`映射文件: 
<mapper namespace="cn.zjtj.store.mapper.ProvinceMapper">

        <!-- 获取所有省的列表 -->
<!-- List<Province> getProvinceList() -->
<select id="getProvinceList"
resultType="cn.zjtj.store.entity.Province">
SELECT
id,
province_code AS code,
province_name AS name
FROM
t_dict_provinces
</select> <!-- 根据省的代号,获取省的信息 -->
<!-- Province getProvinceByCode(String provinceCode) -->
<select id="getProvinceByCode"
resultType="cn.zjtj.store.entity.Province">
SELECT
id,
province_code AS code,
province_name AS name
FROM
t_dict_provinces
WHERE
province_code=#{provinceCode}
</select> </mapper>
 
### 业务层
 
以处理省的信息为例,先创建对应的业务接口`cn.zjtj.store.service.IProvinceService`,并添加与持久层接口中相同的抽象方法:  
 /**
* 获取所有省的列表
*/
List<Province> getProvinceList(); /**
* 根据省的代号,获取省的信息
*/
Province getProvinceByCode(String provinceCode);
创建`cn.zjtj.store.service.ProvinceServiceImpl`实现以上接口,并使用`@Service("provinceService")`注解,然后,在类中声明`@Autowired ProvinceMapper provinceMapper;`属性,然后,实现接口中的抽象方法:
   
public List<Province> getProvinceList() {
return provinceMapper.getProvinceList();
} public Province getProvinceByCode(String provinceCode) {
return provinceMapper.getProvinceByCode(provinceCode);
}
 
 
###  控制器层
获取省的列表
请求路径:`/province/list.do`
请求参数:`无`
请求类型:`GET`
响应方式:`ResponseResult<List<Province>>`
根据省的代号,获取省的信息
请求路径:`/province/info.do`
请求参数:`code=110000`
请求类型:`GET`
响应方式:`ResponseResult<Province>`
获取某个省的市的列表
请求路径:`/city/list.do`
请求参数:`province_code=xx`
请求类型:`GET`
响应方式:`ResponseResult<List<City>>`
…… ……

(其实大体思路就是MVC思想  ,但还是有很多细节要注意,要多练习。)

 
-------------------------------------------------------------------------------------------
 
### POST请求与GET请求的区别(面试题
GET常用于地址栏请求
POST请求表单提交,json的应用(看之前的代码) ,一般要加方法体

get请求的提交的数据量较小
POST请求的数据一般无限制

get把很多信息暴露了,如id等,所以不太安全,相比post请求而言。

get请求便于收藏 ,因为它具体到某一个网页,而post不是的(找个代码看看)。

 
 
 

Spring/SpringMVC/MyBatis(持久层、业务层、控制层思路小结)的更多相关文章

  1. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十三)数据层优化-表规范、索引优化

    本文提要 最近写的几篇文章都是关于数据层优化方面的,这几天也在想还有哪些地方可以优化改进,结合日志和项目代码发现,关于数据层的优化,还是有几个方面可以继续修改的,代码方面,整合了druid数据源也开启 ...

  2. Spring+SpringMVc+Mybatis实现数据库查询

    大家好,本篇博客小Y将会给大家带来一篇SSM框架实现数据查询的Demo,使用的数据库是Mysql,Server是TomCat.现在的SSM整合非常流行,因为springmvc的高效和mybatis的灵 ...

  3. Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——S ...

  4. SSM框架——Spring+SpringMVC+Mybatis的搭建教程

    一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP. S ...

  5. 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)

    梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...

  6. SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

    1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...

  7. Maven 搭建 SSM框架——Spring+SpringMVC+Mybatis的搭建教程

    一:概述 SSM框架在项目开发中经常使用到,相比于SSH框架,它在仅几年的开发中运用的更加广泛. Spring作为一个轻量级的框架,有很多的拓展功能,最主要的我们一般项目使用的就是IOC和AOP.Sp ...

  8. 【JavaWeb】Spring+SpringMVC+MyBatis+SpringSecurity+EhCache+JCaptcha 完整Web基础框架(三)

    Spring+SpringMVC MVC呢,现在似乎越来越流行使用SpringMVC框架,我自己用的感觉,是非常好,确实很舒服,配置一开始是麻烦了一点点,但是后续的开发真的是很清爽! SpringMV ...

  9. [JSP]Maven+SSM框架(Spring+SpringMVC+MyBatis) - Hello World

    来源:http://blog.csdn.net/zhshulin/article/details/37956105?utm_source=tuicool&utm_medium=referral ...

  10. SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)【转载】

    最近在学习Spring+SpringMVC+MyBatis的整合.以下是参考网上的资料自己实践操作的详细步骤. 1.基本概念   1.1.Spring Spring是一个开源框架,Spring是于20 ...

随机推荐

  1. [LeetCode] 422. Valid Word Square_Easy

    Given a sequence of words, check whether it forms a valid word square. A sequence of words forms a v ...

  2. python简单的ftp程序

    服务器端 '''1.读取文件名2.检测文件是否存在3.打开文件4.检测文件大小5.发送文件大小给客户端6.等客户端确认7.开始边读边发数据8.发送md5'''import socket,os,time ...

  3. jquery dataTables例子

    https://datatables.net/examples/styling/bootstrap.html http://datatables.club/example/#styling http: ...

  4. .Net Core资源

    官网:https://dotnet.github.io/ 1.开发环境 vs2015安装: .net core sdk : https://download.microsoft.com/downloa ...

  5. webpack使用六

    插件(Plugins) 插件(Plugins)是用来拓展Webpack功能的,它们会在整个构建过程中生效,执行相关的任务. Loaders和Plugins常常被弄混,但是他们其实是完全不同的东西,可以 ...

  6. javascript获取style兼容性问题

    获取css 样式的方法有三种 : style, currentStyle , getComputedStyle style (无兼容性问题) 获取语法: ele.style.attr : 设置语法:e ...

  7. LeetCode168.Excel表列名称

    给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> ...

  8. 了解MQ

    一.了解RocketMQ? rocketMQ是阿里开源的一款十分优秀的消息队列,rocketMQ具有很多其他消息队列不具有的特性,更重要的是rocketMQ是用java开发的学习成本较低,并且经历了双 ...

  9. linux网卡eth1如何修改为eth0

    ifconfig看到的ip不是我想要的ip,而且显示的第一块网卡也是eth1 ,这明显是有问题的, vim /etc/sysconfig/network-script/ifcfg-eth0 看到的ip ...

  10. tfs团队项目删除原来连接的默认账户

    1.在用visual studio 连接团队项目时,首次输入用户名和密码后,默认保存住凭据了,等以后连接会自动采用首次的凭证. 但是如何采用新的用户重新登录呢.如图所示,删除原有的凭证.删除后重启电脑 ...