周日沒怎麼休息好,周一一天都迷迷糊糊的,不過還算是幹了不少的活。 總結一下,大致有以下幾點內容: 1 使用poi以及mysql jdbc實現了一個複雜excel的導入 2 基於工程原有的代碼,書寫spring mvc的業務代碼以及測試用例 使用POI以及jdbc POI是用於處理excel文件很常用 ...
周日沒怎麼休息好,周一一天都迷迷糊糊的,不過還算是幹了不少的活。
總結一下,大致有以下幾點內容:
- 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);
}
});
}
}