spring/springMVC/mybatis(持久层、业务层、控制层思路小结)

2021-07-10 00:07

阅读:838

标签:桌面   代码   思想   字段   练习   声明   mys   ice   相同   

准备工作:
## 7 导入省市区数据到数据库中

 

1. 从FTP下载SQL脚本文件

 

2. 把脚本文件移动到易于描述绝对路径的位置

 

3. 进入MySQL控制台

 

4. 使用`tedu_store`数据库

 

5. 运行`source e:\t_dict.sql`以执行该脚本文件    (  linux下的命令是  source /home/soft01/桌面/t_dict.sql;)
 
-------------------------------------------------------------------------------------------
 

 

## 获取省市区数据

 

### 目标

 

获取所有省的列表

 

根据省的代号,获取省的信息

 

获取某个省的所有市的列表

 

根据市的代号,获取市的信息

 

获取某个市的所有区的列表

 

根据区的代号,获取区的信息
 
 
------------------------------------------------------------------------------------------
 
 

 

### 创建实体类(分析前端页面,并依照数据库中各个表的字段写相应的实体类)

 

在`cn.tedu.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.tedu.store.mapper.ProvinceMapper`接口,添加抽象方法:   
 /**
     * 获取所有省的列表
     */
    List getProvinceList();



    /**
     * 根据省的代号,获取省的信息
     */
    Province getProvinceByCode(String provinceCode);

 

 

然后,在`resources\mappers\`下创建(复制粘贴再修改)`ProvinceMapper.xml`映射文件: 
mapper namespace="cn.tedu.store.mapper.ProvinceMapper">
        
        
        
        select id="getProvinceList"
            resultType="cn.tedu.store.entity.Province">
            SELECT
                id,
                province_code   AS code,
                province_name   AS name
            FROM
                t_dict_provinces
        select>


        
        
        select id="getProvinceByCode"
            resultType="cn.tedu.store.entity.Province">
            SELECT
                id,
                province_code   AS code,
                province_name   AS name
            FROM
                t_dict_provinces
            WHERE
                province_code=#{provinceCode}
        select>


    mapper>
    

 

 

 

### 业务层
 
以处理省的信息为例,先创建对应的业务接口`cn.tedu.store.service.IProvinceService`,并添加与持久层接口中相同的抽象方法:  
 /**
     * 获取所有省的列表
     */
    List getProvinceList();



    /**
     * 根据省的代号,获取省的信息
     */
    Province getProvinceByCode(String provinceCode);

 

 

创建`cn.tedu.store.service.ProvinceServiceImpl`实现以上接口,并使用`@Service("provinceService")`注解,然后,在类中声明`@Autowired ProvinceMapper provinceMapper;`属性,然后,实现接口中的抽象方法:
   
public List getProvinceList() {
        return provinceMapper.getProvinceList();
    }


    public Province getProvinceByCode(String provinceCode) {
        return provinceMapper.getProvinceByCode(provinceCode);
    }

 

 
 

 

###  控制器层

 

获取省的列表

 

请求路径:`/province/list.do`
请求参数:`无`
请求类型:`GET`
响应方式:`ResponseResult>`

 

根据省的代号,获取省的信息

 

请求路径:`/province/info.do`
请求参数:`code=110000`
请求类型:`GET`
响应方式:`ResponseResult`

 

获取某个省的市的列表

 

请求路径:`/city/list.do`
请求参数:`province_code=xx`
请求类型:`GET`
响应方式:`ResponseResult>`

 

…… ……

 

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

 

 
-------------------------------------------------------------------------------------------

 

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

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

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

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

 
 
 

 

spring/springMVC/mybatis(持久层、业务层、控制层思路小结)

标签:桌面   代码   思想   字段   练习   声明   mys   ice   相同   

原文地址:https://www.cnblogs.com/shijinglu2018/p/9563476.html


评论


亲,登录后才可以留言!