Java程序员的日常—— POI与JDBC、Mockmvc与单元测试
周日没怎么休息好,周一一天都迷迷糊糊的,不过还算是干了不少的活。
总结一下,大致有以下几点内容:
- 1 使用poi以及mysql jdbc实现了一个复杂excel的导入
- 2 基于工程原有的代码,书写spring mvc的业务代码以及测试用例
使用POI以及jdbc
POI是用于处理excel文件很常用的工具,如果你的excel是比较老的版本,记xls结尾的,那么只使用poi就行了。如果是xlsx结尾的,还需要引入xssf的jar包。
参考maven的pom.xml配置:
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
使用的话,这里就简单介绍下数据的读取:
InputStream stream = new FileInputStream("绝对路径\\文件名.xlsx");//获得输入流
XSSFWorkbook wb=new XSSFWorkbook(stream);//xlsx版本使用XSSFWorkbook
Sheet sheet1 = wb.getSheetAt(1);//获取制定的sheet页内容
for(int i=0,total = sheet1.getLastRowNum();i<total;i++){
Row row = sheet1.getRow(i);//row.getCell(no)就能获取指定列的内容
}
JDBC动态参数
使用JDBC还是很基础的内容了,这里使用动态sql动态拼接条件:
sql = "select id from scp_b where name=? and code=?";
相应的查询:
PreparedStatement sta = conn.prepareStatement(sql);
sta.setString(1, "xxx";
sta.setString(2, "yyyy");
ResultSet rs = sta.executeQuery();
while(rs.next()){
System.out.println(rs.getString("id"));
}
sta.close();
使用Mockmvc进行mvc的单元测试
以前没有web mvc的单元测试经验,所以这部分的内容还得继续学习下,才能总结好。
不过,有一点还是需要明确的,就是单元测试。
单元测试,是最基本的程序验证的方法。之前还流行过TDD测试驱动开发的软件方法论,即需要先写出测试用例,然后再去写实现。这样的好处就是在编写实现之前,就明确知道输入是什么,输出是什么...不过,真正做到这点的,全国也没有多少吧。大多是写完实现,开发者自己补上测试用例,用来验证一些简单的场景而已。
@WebAppConfiguration
public class aaaTest extends BaseTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
@Test
public void OrderTendencyDataProfilingChart() throws Exception{
this.mockMvc.perform(post("/a/b")
.accept(MediaType.APPLICATION_JSON)
.characterEncoding("UTF-8")
.param("1", "2")
.header(ApiTokenUtils._tokenName, ApiTokenUtils.getToken()))
.andExpect(status().isOk())
.andDo(new ResultHandler() {
@Override
public void handle(MvcResult result) throws Exception {
result.getResponse().setCharacterEncoding("UTF-8");
String content = result.getResponse().getContentAsString();
System.out.println(content);
}
});
}
}
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2015-09-05 《胡雪岩·萧瑟洋场》—— 读后总结
2013-09-05 ADX3000 三层网络 纠错
2013-09-05 ADX3000二层的负载均衡设计问题