zoukankan      html  css  js  c++  java
  • 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);
                }
            });
    	}
    }
    
    
  • 相关阅读:
    TVM量化代码解析
    如何在 GPU 上优化卷积
    全文翻译(全文合集):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
    全文翻译(四) TVM An Automated End-to-End Optimizing Compiler
    全文翻译(三) TVM An Automated End-to-End Optimizing Compiler
    全文翻译(二): TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
    全文翻译(一):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
    pytorch使用gpu加速的方法
    springboot的实践1
    带你玩转stackOverflow-3
  • 原文地址:https://www.cnblogs.com/xing901022/p/5843892.html
Copyright © 2011-2022 走看看