Springboot & Mybatis 构建restful 服务四
Springboot & Mybatis 构建restful 服务四
1 前置条件
成功执行完Springboot & Mybatis 构建restful 服务三
2 restful service 添加 Apache POI生成 Excel 文件
1)修改 POM.xml文件
添加 Apache POI 的依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.5-FINAL</version>
</dependency>
2)在SY里添加创建 excel 文件的方法
src/main/java/com/serena/controller/SY.java
@ApiOperation(value="查询所有账户余额等信息,并导出在 excel 表格中")
@RequestMapping(value="/accountsfile",method = RequestMethod.GET)
public boolean wSelectAll(HttpServletResponse response){
logg.info("write a file that select accounts ");
List<SettleAccount> list = null;
boolean flag = false;
// 获取所有账户信息
list = iSY.selectAccounts();
// 判断是否存在账户
if(list == null)
logg.warn("not found accounts");
else{
// 创建表对象
HSSFWorkbook workBook = new HSSFWorkbook();
ServletOutputStream fileOut = null;
try {
// 获取输出流对象
fileOut = response.getOutputStream();
// 创建 sheet
HSSFSheet sheet = workBook.createSheet();
// 设置表格第一行的字段名
HSSFRow row = sheet.createRow(0);
int i =1;
row.createCell(0).setCellValue("账户编号");
row.createCell(1).setCellValue("账户名");
row.createCell(2).setCellValue("客户编号");
row.createCell(3).setCellValue("短信余额");
for (SettleAccount acc : list) {
HSSFRow rowi = sheet.createRow(i++);
rowi.createCell(0).setCellValue(acc.getAccountcode());
rowi.createCell(1).setCellValue(acc.getAccountname());
rowi.createCell(2).setCellValue(acc.getCustomercode());
rowi.createCell(3).setCellValue(acc.getSmsnum().doubleValue());
}
workBook.write(fileOut);
return true;
} catch (FileNotFoundException e) {
logg.error("create table error ---- " + e.getMessage());
e.printStackTrace();
return false;
} catch (IOException e) {
logg.error("create table error ---- " + e.getMessage());
e.printStackTrace();
return false;
} finally {
try {
fileOut.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return flag;
}
5)在终端输入如下测试指令:
#cd 项目所在目录
cd /Users/psj/Documents/pro/xm/AccountBalance
mvn clean package
cd target
mkdir /Users/psj/Desktop/t/
#将 tar 包复制到自己指定目录(/Users/psj/Desktop/t/)
cp AccountBalance-0.0.1-SNAPSHOT.tar /Users/psj/Desktop/t/
#cd 到上个操作指定的目录
cd /Users/psj/Desktop/t
#解压 tar 包
tar -xvf AccountBalance-0.0.1-SNAPSHOT.tar
#此时可查看目录结构如要求所示
ll
#运行 可执行jar,测试结果
java -jar AccountBalance-0.0.1-SNAPSHOT.jar
#
#打开浏览器
http://localhost:8999/accountsfile
#在下载对话框中指定文件名和保存路径
#
#返回上个 iterm 窗口,control+c 结束服务
Springboot & Mybatis 构建restful 服务四的更多相关文章
- Springboot & Mybatis 构建restful 服务五
Springboot & Mybatis 构建restful 服务五 1 前置条件 成功执行完Springboot & Mybatis 构建restful 服务四 2 restful ...
- Springboot & Mybatis 构建restful 服务三
Springboot & Mybatis 构建restful 服务三 1 前置条件 成功执行完Springboot & Mybatis 构建restful 服务二 2 restful ...
- Springboot & Mybatis 构建restful 服务二
Springboot & Mybatis 构建restful 服务二 1 前置条件 成功执行完Springboot & Mybatis 构建restful 服务一 2 restful ...
- Springboot & Mybatis 构建restful 服务
Springboot & Mybatis 构建restful 服务一 1 前置条件 jdk测试:java -version maven测试:命令行之行mvn -v eclipse及maven插 ...
- 基于SpringBoot开发一个Restful服务,实现增删改查功能
前言 在去年的时候,在各种渠道中略微的了解了SpringBoot,在开发web项目的时候是如何的方便.快捷.但是当时并没有认真的去学习下,毕竟感觉自己在Struts和SpringMVC都用得不太熟练. ...
- jersey+maven构建restful服务
一.新建一个Maven Web项目 a) 新建一个简单的Maven项目 b) 将简单的Maven项目转成Web项目 (若没出现further configuration available--或里面的 ...
- 用Jersey构建RESTful服务7--Jersey+SQLServer+Hibernate4.3+Spring3.2
一.整体说明 本例执行演示了用 Jersey 构建 RESTful 服务中.怎样集成 Spring3 二.环境 1.上文的项目RestDemo 2.Spring及其它相关的jar ,导入项目 三.配置 ...
- JAX-RS(基于Jersey) + Spring 4.x + MyBatis构建REST服务架构
0. 大背景 众所周知,REST架构已经成为现代服务端的趋势. 很多公司,已经采用REST作为App, H5以及其它客户端的服务端架构. 1. 什么是JAX-RS? JAX-RS是JAVA EE6 引 ...
- 使用spring mvc或者resteasy构建restful服务
看到最近一个项目里用resteasy来构建restful接口,有点不明白,不少Spring mvc4.0以后也可以很方面的实现restful服务吗,为啥还要在Spring MVC的项目里还引入rest ...
随机推荐
- js导出excel文件
<div id="tablesDiv"> <table id="tabDiv1"> <tbody><tr> &l ...
- Task的在主线程处理异常信息的Helper类
最近使用task时候需要把异常记录日志,直接注入非单例模式的实例进入异步线程,在高并发情况下会出现一些问题. 所以需要把异常反馈给主线程 ,并且不在主线程里进行等待,研究相关资料后,自己写了一个简单的 ...
- netcore 下加密遇到的问题
KeyedHashAlgorithm algorithm = KeyedHashAlgorithm.Create(algorithmName.ToString().ToUpper(CultureInf ...
- phxpaxos遇到反复拉取checkpoint但是反复失败的问题,给其它节点造成压力
原因: 接收checkpoint时与接收普通message共用IOLoop中的队列,当遇到队列满或者超内存时,会造成checkpoint的包随机丢失的问题 解决办法: 遇到checkpoint时不丢弃 ...
- python学习Day7 数据类型的转换,字符编码演变历程
一.数据类型的转换 1.1.1.字符转列表:lst1 = str.split(默认空格,也可依据指定字符分界),若无分界字符,就没法拆分,这时可以直接放进list转成列表 ----> s1 = ...
- vue---canvas实现二维码和图片合成的海报
应项目需求,要一张宣传页面上加一个太阳码合成一张宣传海报,用户用微信可以识别进入微信小程序. 1. npm安装 npm install html2canvas --save //html转canv ...
- Tomcat的三种安装方式:解压版、安装版、配置成Windows服务版
https://blog.csdn.net/Jessica_XLF/article/details/81711429
- python第一周语言基础
控制语句 if语句,当条件成立时运行语句块.经常与else, elif(相当于else if) 配合使用. for语句,遍历列表.字符串.字典.集合等迭代器,依次处理迭代器中的每个元素. while语 ...
- docker面试题集
Docker的应用场景 Web 应用的自动化打包和发布. 自动化测试和持续集成.发布. 在服务型环境中部署和调整数据库或其他的后台应用. 从头编译或者扩展现有的OpenShift或Cloud Foun ...
- MTD的认识
MTD即内存计数设备,是linux中对ROM.NORFLASH.NAND Flash等存储设备抽象出来的一个设备层,它向上提供统一的访问接口:读写.擦除等:屏蔽了底层硬件的操作.各类存储设备的差别. ...