hello,各位小伙伴又到了一周的工作总结啦;先说说这周我在项目中遇到一些问题和解决方案吧,如果有雷同的小伙伴的可以借鉴一下。到现在为止,这是我接触到的第二个项目,也是先实现一些关于增删改查的操作,这个项目的数据库一共有7张表,我用了大量的时间才搞清楚表与表之间的关联关系,并且用Navicat画了模型图,做了各个表之间关联的信息,就是让自己吃透数据库并且在脑子里有一个表的结构。这个数据库在刚开始设计的时候就有点问题,导致后面我和大佬们在写需求的时候遇到各种坑,多次讨论解决方案。这里如果遇到关于数据库的问题一定要及时询问大佬或者领导吧,因为关于数据库咱也不敢动。如果不是时间有点紧迫,估计大佬们真的会改数据库表的结构。这里也让我知道了对于数据库表设时的严谨性,虽然现在暂时还接触不到表的设计,但是看到项目中大多数实现接口都是跟数据库相关,也知道了它的重要性。之后就是做一些关于的统计的接口,在写SQL的时候我都会在Navicat中先自己写好,这样也有助于提升我写SQL的能力。写好之后,我再把自己的SQL拿去找大佬请教,请他们看看有没有能够优化的地方。写完接口之后,就是返回数据格式了。在这里一定要及时和前端沟通好你的接口URL以及他需要的数据格式,这里我也是虚心向前端学习,因为前端大佬也知道我是个新人,所以他帮助我整理了一下他需要的数据格式。如果有小伙伴的公司是前后端分离的,一定要多问问前端他需要的格式,然后按照他的格式处理之后return;还有就是,项目部署到服务器上的时候,我都会去和大佬沟通,让我来部署以此熟悉部署环境。上面就是对这周在项目中我自己遇到的问题以及自己认为需要重视的地方,反正就是多想,多问,多练。
一.接着上次Git的总结还剩下一些没有写完:
在idea中使用git,这里我自己使用的是gitee作为案例;
1.打开idea在settings中找到关于git的设置,并且找到你的Git的执行程序,点击test显示你的Git版本号代表成功;
2.找到下面gitee并设置你的gitee账户以及密码即可;
3.把idea项目分享到gitee上面:
选中要同步的项目,点击菜单【VCS】-【Import into Version Control】-【Share Project on Gitee】;
4.创建远程仓库,填写远程仓库信息 ;
5.代码提交与拉取;
6.必须先提交本地仓库,再提交远程仓库;
7.关于分支操作;
8.创建新的分支并且切换新分支上面
关于idea整合git基本上都在这里啦,还有就是关于git分支合并以及合并时的冲突解决问题,我还在学习当中,等我整理好笔记之后也会放在上面,有兴趣的小同伴可以记录一下。
二.接下来是使用java对Excel的读和写的操作,这也是在项目的中用到比较多的一项技术。它底层还是使用io流的方法对文件进行读和写;
这里有两个工具类,第一个是POI,它是Apache软件基金会下的;还有一个就是easyExcel,easyExcel是阿里巴巴开源的一个excel处理框架;
我在项目中看到大佬们使用的就是easyExcel,先来说说它的一些特点:
1.EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称;
2.EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘上一行行读取数据,逐个解析。
这里我们开始使用easyExcel对文件写的操作;
3.导入相关jar包依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.11</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
4.创建Excel表格对应的实体类(@ExcelProperties("XXX"))
@Data
public class ExcelDemo {
@ExcelProperty("学生id")
private Integer id;
@ExcelProperty("学生姓名")
private String name;
@ExcelProperty("学生性别")
private String sex;
@ExcelProperty("学生地址")
private String address;
}
5.创建一个demo类实现关于Excel文件类写的操作;
public class Demo1 {
public static void main(String[] args) {
//设置要到的路径和Excel的名称
String filename = "Q:\\Exceltest\\qiaoqiao.xlsx";
//调用easyExcel方法实现写的操作(这里包含filename和实体类的class)
EasyExcel.write(filename,ExcelDemo.class)
.sheet("学生列表").doWrite(getData());
}
private static List<ExcelDemo> getData(){
ArrayList<ExcelDemo> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
ExcelDemo excelDemo = new ExcelDemo();
excelDemo.setId(i);
excelDemo.setName("张三"+i);
excelDemo.setSex("男"+i);
excelDemo.setAddress("四川成都" + i);
list.add(excelDemo);
}
return list;
}
}
6.完成了easyExcel简单的写操作,来说说读的操作,关于读的操作需要用到监听器;依然还是先创建实体类。
@Data
public class StudentExcel {
//这里的index指的是表格中的每一列
@ExcelProperty(value = "学生id",index = 0)
private Integer id;
@ExcelProperty(value = "学生姓名",index = 1)
private String name;
@ExcelProperty(value = "学生年龄",index = 2)
private Integer age;
@ExcelProperty(value = "学生地址",index = 3)
private String address;
@ExcelProperty(value = "添加时间",index = 4)
private String creatTime;
}
7.读取表格需要用到监听器------创建一个类继承监听器:
//读取Excel表格需要监听器
public class ExcelListener extends AnalysisEventListener<StudentExcel> {
//一行一行的读取(不能读取表头)
@Override
public void invoke(StudentExcel data, AnalysisContext context) {
System.out.println("*****" + data);
}
//读取表头的方法
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("**** 表头" + headMap);
}
//读取完成之后
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}
最后测试:
//实现Excel读操作的:
String fileName = "Z:\\springboot项目\\test.xlsx";
//2.调用Excel方法实现读的操作
EasyExcel.read(fileName,StudentExcel.class,new ExcelListener())
.sheet().doRead();
关于easyExcel简单的读写的笔记我就记录到这里啦。有需要的小伙伴可以做好笔记,谢谢小伙伴的观看,如果上面有不对的地方可以在评论区告诉我,我会及时修改的。