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);
            }
        });
    }
}
本文转自博客园xingoo的博客,原文链接:Java程序员的日常—— POI与JDBC、Mockmvc与单元测试,如需转载请自行联系原博主。
相关文章
|
2月前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
75 9
|
18天前
|
Java 数据库连接 数据库
springboot java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver应该如何解决
通过上述步骤,可以有效解决Spring Boot项目中遇到的 `java.lang.ClassNotFoundException: dm.jdbc.driver.DmDriver`问题。确保在项目中正确添加达梦数据库的JDBC驱动依赖,并在配置文件中正确配置数据源信息,是解决此问题的关键。通过这些方法,可以确保Spring Boot项目能够正确连接达梦数据库并正常运行。
137 31
|
5月前
|
Java 关系型数据库 数据库连接
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
54 8
|
2月前
|
SQL 存储 Java
面向 Java 程序员的 SQLite 替代品
SQLite 是轻量级数据库,适用于小微型应用,但其对外部数据源支持较弱、无存储过程等问题影响了开发效率。esProc SPL 是一个纯 Java 开发的免费开源工具,支持标准 JDBC 接口,提供丰富的数据源访问、强大的流程控制和高效的数据处理能力,尤其适合 Java 和安卓开发。SPL 代码简洁易懂,支持热切换,可大幅提高开发效率。
|
2月前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
354 2
|
2月前
|
SQL Java 程序员
倍增 Java 程序员的开发效率
应用计算困境:Java 作为主流开发语言,在数据处理方面存在复杂度高的问题,而 SQL 虽然简洁但受限于数据库架构。SPL(Structured Process Language)是一种纯 Java 开发的数据处理语言,结合了 Java 的架构灵活性和 SQL 的简洁性。SPL 提供简洁的语法、完善的计算能力、高效的 IDE、大数据支持、与 Java 应用无缝集成以及开放性和热切换特性,能够大幅提升开发效率和性能。
|
3月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
54 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
3月前
|
IDE Java 程序员
C++ 程序员的 Java 指南
一个 C++ 程序员自己总结的 Java 学习中应该注意的点。
27 5
|
3月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
43 5
|
3月前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
68 1
下一篇
开通oss服务