准备工作:
## 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. 多线程——Executor、ExecutorService、Executors三者的区别

    Executor.ExecutorService.Executors三者的区别: 层次关系: public interface ExecutorService extends Executor {} ...

  2. MySql利用mysqldump导出/导入数据库表数据

    备份 在源主机上,先使用mysqldump命令备份,导出sql脚本文件 mysqldump -uroot -p tel_dev > /opt/tel_dev.sql 也可指定编码 mysqldu ...

  3. Linux命令:linux软链接的创建、删除和更新---ln

    大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作.同样的,在系统级别也有.在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能有 ...

  4. java实现的加密解密

    void encode(File enfile, File defile) throws Exception { String Algorithm = "DES"; byte[] ...

  5. max_execution_time with sleep

    Under Linux, sleeping time is ignored, but under Windows, it counts as execution time. Note The set_ ...

  6. python package

    简要说一下,一个python模块就是一个python文件:一个包就是存放python模块的目录结构,并且包下边必须要有一个可以为空的__init__.py模块 //test.py from mypac ...

  7. ROSETTA使用技巧随笔--控制Log输出等级

    一般运行ROSETTA,屏幕上的Log很多,而且很复杂,让我们看着眼晕,现在我们可以通过控制Log等级来控制屏幕上输出的东西.  Integer Level 0 Fatal 100 Error 200 ...

  8. cocos2dx 3.x 网络循环接收数据(RakNet::Packet* packet)单步网络接收

    void FriendFightLayer::update(float dt) { dealWithPacket(dt); if (m_isNeedSwitchToLobby) { PublicMet ...

  9. 测试一体机ASM Disk online操作

    环境:3台虚拟机 RHEL 7.3 + Oracle RAC 11.2.0.4 问题现象:RAC运行正常,ASM磁盘组Normal冗余,节点主机重启,offline状态的asm disk短时间内可以直 ...

  10. MySQL练习题之参考答案

    1.创建表结构和数据 /* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Sou ...