准备工作:
## 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. Json常用操作

    1, 获取json字符串中属性(传统方式) import net.sf.json.JSONObject JSONObject json = JSONObject.fromObject(response ...

  2. SSLServerSocket代码实现

    理解一个设计思想,结合代码是最好的途径.安全套接字服务端的实现代码如下: X509TrustManager MyX509TrustManager = new X509TrustManager() { ...

  3. js和java的参数传递方式实际都是一样的,都是按值传递

    只不过要注意的是字符串类型在java中是对象,在js是基本数据类型,作为参数传递的时候是拷贝值,

  4. Charles 使用教程

    Charles 的简介 如何安装 Charles 将 Charles 设置成系统代理 Charles 主界面介绍 过滤网络请求 截取 iPhone 上的网络封包 截取 Https 通讯信息 模拟慢速网 ...

  5. ionic环境配置

    1.现在 npm install -g ionic 直接安装ionic2版本.用ionic1版本开发,用 npm install -g ionic@1.6. 2.第一次输入: ionic serve ...

  6. Linux基础(五) Shell函数

    Shell 函数 linux shell 可以用户定义函数,然后在shell脚本中可以随便调用. shell中函数的定义格式如下: [ function ] funname [()] { action ...

  7. es6函数的扩展

    扩展运算符 含义 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列. 扩展运算符的应用 (1)合并数组 // ES5 [1, 2].co ...

  8. c#之字符串,列表,接口,队列,栈,多态

    1.字符串的用法 using System; using System.Collections.Generic; using System.Linq; using System.Text; using ...

  9. mysql小脚本

    常用脚本 1)备份数据库 #!/bin/bash#每周一全量备份数据库 #DB1mysqldump -hip eduyun -u用户 -p密码 >eduyun`date +%Y-%m-%d-%H ...

  10. ActiveMQ之spring集成消息转换器MessageConverter

    MessageConverter的作用主要有两方面,一方面它可以把我们的非标准化Message对象转换成我们的目标Message对象,这主要是用在发送消息的时候:另一方面它又可以把我们的Message ...