基于springMVC+mybatis的实践记录

目前在做一个项目用到springMVC+mybatis,由于之前没学过,上手有点难,因此写下随笔记录下:

写了四个接口

第一个接口:GET请求,查询返回列表

查找 专户报告列表 -----GET
http://localhost:8080/fee/investWeeklyReport/getByAccoutId

通过postman 模拟各种参数

{
  "code": 0,
  "message": "成功",
  "data": {
    "data": [
      {
        "reportId": 0,
        "accountId": 0,
        "accountName": "浙商01",
        "accountTransactionType": 2,
        "accountTransactionTypeStr": "纯债及一级债",
        "reportDate": 1471336967000,
        "reportName": "专户月度数据统计",
        "submitTime": 1471423399000,
        "deadLine": 1471423391000,
        "reportStatus": 0
      },
      {
        "reportId": 1,
        "accountId": 0,
        "accountName": "浙商01",
        "accountTransactionType": 2,
        "accountTransactionTypeStr": "纯债及一级债",
        "reportDate": 1471250672000,
        "reportName": "交易型账户每日估算",
        "submitTime": 1471439967000,
        "deadLine": 1471423492000,
        "reportStatus": 0
      },
      {
        "reportId": 2,
        "accountId": 1,
        "accountName": "浙商02",
        "accountTransactionType": 0,
        "accountTransactionTypeStr": "纯债",
        "reportDate": 1471250706000,
        "reportName": "专户月度数据统计",
        "submitTime": 1471439970000,
        "deadLine": 1471439973000,
        "reportStatus": 0
      }
    ],
    "totalcount": 3,
    "pageIndex": 1,
    "pageSize": 3
  }
}

Controller:

    @Autowired
    AccountReportService accountReportService;
    /**
     * 根据当前系统登录用户的userId得到 相关专户的报表
     * @param reportTypes
     * @param transactionTypes
     * @param reportStatuss
     * @param pageIndex
     * @param pageSize
     * @param userId
     * @return
     * @throws DatayesException
     * @throws ParseException
     */
    @RequestMapping(value = "/accountReport/searchReport", method = RequestMethod.GET)
    public Object searchReport(
            @RequestParam(value = "reportTypes",required = false) String reportTypes,
            @RequestParam(value = "transactionTypes",required = false) String transactionTypes,
            @RequestParam(value = "reportStatuss",required = false) String reportStatuss,
            @RequestParam(value = "pageIndex",required = false) Integer pageIndex,
            @RequestParam(value = "pageSize",required = false) Integer pageSize,
            @RequestParam(value = "userId",required = true) Integer userId)throws DatayesException, ParseException {

        if (pageSize == null)
            pageSize = Constant.MAX_RECORD_NUM;
        if (pageIndex == null)
            pageIndex = 1;

        AccoutReportSearchRequest searchRequest = new AccoutReportSearchRequest();
        searchRequest.setPageIndex(pageIndex);
        searchRequest.setPageSize(pageSize);
        List<Integer> tempReportStatusList = formatList(reportStatuss);
        List<Integer> tempReportTypeList = formatList(reportTypes);
        List<Integer> tempTransactionTypeList = formatList(transactionTypes);
        searchRequest.setReportStatusList(tempReportStatusList);
        searchRequest.setReportTypeList(tempReportTypeList);
        searchRequest.setTransactionTypeList(tempTransactionTypeList);
        searchRequest.setUserId(userId);
        Page<AccoutReportShow> list = accountReportService.searchReportList(searchRequest);
        return list;
    }
 /**
         * 2016-08-17
         * 通用的把相同名称的多个参数值 用逗号分隔的转换成 数组列表
         * 因为在数据库查询中 in 语句 必须用 列表或数组才行
         * @param params
         * @return
         */
        public <T> List<T> formatList(String params){
            String[] arrs = params.split(",");
            if(arrs.length>0){
                List<T> list = new ArrayList<T>();
                for(String s:arrs){
                    T t = (T)s;
                    list.add(t);
                }
                return list;
            }
            return null;
        }

把请求参数封装到AccoutReportSearchRequest 实体中,传到业务层。具体后台不再复制代码;

接口二:

接口:添加新的 专户报告

POST 请求 请求参数封装在 请求AccountReportAddRequest 中
http://localhost:8080/fee/accountReport/addReport ----POST
请求参数格式:
{"accountId":0,"reportDate":"2016-08-18","name":"测试报表","deadline":"2016年08月18日 12:00","type":3}
自动添加新的专户报告 和 投资周报计划
暂没设置响应。

请求实体字段:

@NotNull
    public String reportDate;
    @NotNull
    public String deadline;
    @NotNull
    public Long accountId;
    @NotNull
    public String name;
    @NotNull
    public Integer type;

Controller:

@RequestMapping(value = "/accountReport/addReport", method = RequestMethod.POST)
    public void addReport( @Valid @RequestBody AccountReportAddRequest request)throws DatayesException, ParseException {

        AccountReport accountReport = new AccountReport();
        accountReport.setAccountId(request.getAccountId());
        accountReport.setName(request.getName());
        Date deadLine = DateFormatUtil.formatDateToDateY_M_D_H_MByString(request.getDeadline());
        accountReport.setDeadline(deadLine);
        accountReport.setType(request.getType());
        Date reportDate = DateFormatUtil.formatDateToE_DateY_M_DByString(request.getReportDate());
        accountReport.setReportDate(reportDate);
        accountReportService.addAccountReport(accountReport);
    }

第三个接口:

接口:通过 指定的 专户报告找到对应的 投资周报    ----GET

http://localhost:8080/fee/investWeeklyReport/getByAccoutId?accounReporttId=1
{
  "code": 0,
  "message": "成功",
  "data": {
    "investWeeklyReport": {
      "id": 1,
      "accountReportId": 1,
      "startTime": 1471255400000,

"endTime": 1471601000000,
      "fundManager": null,
      "openingVolume": null,
      "lightenVolume": null,
      "expectationAttitude": null,

"summary": null,
      "createTime": 1471514600000,
      "updateTime": 1471514600000,
      "marketReview": null,
      "configStructure": null,

"accountStatus": null,
      "briefDescription": null,
      "investmentPlan": null
    },
    "accountReport": {
      "id": 1,
      "accountId": 0,

"reportDate": 1471449600000,
      "name": "测试报表",
      "deadline": 1471492800000,
      "status": 0,
      "submitTime": 1471513743000,
      "type": 3

}
  }
}

Controller:

@Autowired
    private AccountReportService accountReportService;
    @Autowired
    private InvestWeeklyReportService investWeeklyReportService;
    /**
     * 通过 accountReportId 值得到 投资周报表
     * @param accountReportId
     * @return
     */
    @RequestMapping(value = "/investWeeklyReport/getByAccoutId", method = RequestMethod.GET)
    public Object getByAccoutId(@RequestParam(value = "accountReportId",required = true) Long accountReportId){
        InvestWeeklyReportSearchByAccountIdResponse response = new InvestWeeklyReportSearchByAccountIdResponse();
        AccountReport accountReport = accountReportService.getById(accountReportId);
        InvestWeeklyReport investWeeklyReport = investWeeklyReportService.getByAccountReportId(accountReportId);
        response.setAccountReport(accountReport);
        response.setInvestWeeklyReport(investWeeklyReport);
        return response;
    }

接口:提交投资周报 方法 根据提交的Id号
http://localhost:8080/fee/investWeeklyReport/submit ---POST

响应:

{
      "id": 1,
      "accountReportId": 1,
      "fundManager":"基金经理1",
      "openingVolume": 12,
      "lightenVolume": 13,
      "expectationAttitude": 

1,
      "summary": "一句话概括",
      "marketReview": "市场回顾",
      "configStructure": "配置结构",
      "accountStatus": "期末账户状态",

"briefDescription": "简要说明",
      "investmentPlan": "投资计划"
}
响应:
{
  "code": 0,
  "message": "成功",
  "data": {
    "id": 1,
    "accountReportId": 1,
    "startTime": 1471255400000,
    "endTime": 1471601000000,

"fundManager": "基金经理1",
    "openingVolume": 12,
    "lightenVolume": 13,
    "expectationAttitude": 1,
    "summary": "一句话概括",
    "createTime": 

1471514600000,
    "updateTime": 1471514600000,
    "marketReview": "市场回顾",
    "configStructure": "配置结构",
    "accountStatus": "期末账户状态",

"briefDescription": "简要说明",
    "investmentPlan": "投资计划"
  }
}
/**
     * 提交保存
     * @return
     */
    @RequestMapping(value = "/investWeeklyReport/submit", method = RequestMethod.POST)
    public Object submitInvestWeeklyReport(@Valid @RequestBody InvetWeeklyReportSubmitResponse request){
        InvestWeeklyReportWithBLOBs blobs = investWeeklyReportService.submitInvetsWeeklyReport(request);
        return blobs;
    }
时间: 2024-10-10 17:32:57

基于springMVC+mybatis的实践记录的相关文章

【Log4J 系列】:log4j 整合SpringMVC+MyBatis 实现日志记录(01)

一.准备工作 1.工程目录 2.所需jar包 <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> 二.配置log4j 1.修改log4j DailyRollingFileAppender.java 这个类太大就不复制了,直接看关键性代码 由于log

基于springmvc mybatis junit搭建分工程,分模块的web工程框架(一)

1.创建macow工程 一,new maven project --->创建Create a simple project勾选上 修改pom.xml的packaging为pom Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix. 这个错误直接maven,update project就好了 二, 在root工程上邮件new maven module,mo

maven搭建springmvc+mybatis项目

上一篇中已经成功使用maven搭建了一个web项目,本篇描述在此基础上怎么搭建一个基于springmvc+mybatis环境的项目. 说了这么久,为什么那么多人都喜欢用maven搭建项目?我们都知道maven是用来管理项目依赖包的,它到底有多方便呢?大家都知道,在以前,我如果要在项目中使用jar包,那么需要先去网上下载对应的jar包,然后复制到项目中,然后再add to build path才可以真正使用它.那么maven项目中是怎么做的呢? 首先在建好的maven项目最底下我们可以找到一个po

IDEA下使用maven构建web项目(SpringMVC+Mybatis整合)

需求背景:由于最近总是接到一些需求,需要配合前端团队快速建设移动端UI应用或web应用及后台业务逻辑支撑的需求,若每次都复用之前复杂业务应用的项目代码,总会携带很多暂时不会用到的功能或组件,这样的初始工程就存在冗余代码. 在本文中,我们将使用Java语言开发集成环境IntelliJ IDEA(其倡言是智能编码?),应用maven构建SpringMVC整合Mybatis+MySQL5.7(流行框架)的web项目:目的在于快速构建一个简洁纯净版的web应用工程,将其作为一个基础web-demo,以便

IDEA+springMVC+mybatis构建maven的web项目

应用maven构建SpringMVC整合Mybatis+MySQL8.0.15(流行框架)的web项目 目的:快速构建一个简洁纯净版的web应用工程,将其作为一个基础web-demo,便于复用 一.IDEA下构建maven的web项目 1.新建工程New-->Project,创建maven的web项目,选择maven-archetype-webapp,并配置Project SDK,本次选用的是本机已安装的jdk1.8,如下图所示: 2.填写自己项目的GroupId,ArtifactId,如下图:

基于SpringBoot + Mybatis实现SpringMVC Web项目

一.热身 一个现实的场景是:当我们开发一个Web工程时,架构师和开发工程师可能更关心项目技术结构上的设计.而几乎所有结构良好的软件(项目)都使用了分层设计.分层设计是将项目按技术职能分为几个内聚的部分,从而将技术或接口的实现细节隐藏起来. 从另一个角度上来看,结构上的分层往往也能促进了技术人员的分工,可以使开发人员更专注于某一层业务与功能的实现,比如前端工程师只关心页面的展示与交互效果(例如专注于HTML,JS等),而后端工程师只关心数据和业务逻辑的处理(专注于Java,Mysql等).两者之间

基于Maven搭建SpringMVC+Mybatis项目(3)

| 从高考,到程序员      CSDN日报20170620--<找一个好工作,谈一份好薪水>      6 月书讯 | 最受欢迎的 SQL 入门书重磅升级 从头开始基于Maven搭建SpringMVC+Mybatis项目(3) 标签:               JAVAmavenspring mvcmybatis 2016-07-26 10:06             42087人阅读             评论(2)             收藏              举报 本文

基于Springmvc+Spring+Mybatis+Jqueryeasyui个人信息管理平台(日程管理、天气类型、资产管理、理财规划)

基于Springmvc+Spring+Mybatis+Jqueryeasyui个人信息管理平台(日程管理.天气类型.资产管理.理财规划) 课程讲师老牛 课程分类Java 适合人群中级 课时数量78课时 更新程度完毕 服务类型C类普通服务类课程 用到技术Springmvcspringmybatisjquery easyui 涉及项目个人信息管理好友管理报表实现 咨询QQ2050339477 课程链接http://www.dwz.cn/LO1X3 课程背景 本系统主要用于个人信息的管理通过软件工具对

基于SpringMVC、Maven以及Mybatis的环境搭建 【转】

搭建环境 1.IDE用的是Eclipse的J2EE版本,要保证装上了Maven,可以使用Eclipse的Install New Software来安装然后点击Next,安装好后重启一次.注意:使用最新版的Eclipse时,可以跳过此步,因为最新版的Eclipse已经内置了Maven.2.安装好了Maven后,不要使用IDE自带的Maven,而是去官方下载一个,然后让IDE的Maven指向你下载安装的Maven路径,如图: 三.创建Maven项目 1.创建一个新的Maven Project,Fil