如果是做連接數據庫的話,系統難度就降低了不少;
這次本人也算是體會到數據庫的方便了吧(不過以后雲儲存好像會更受歡迎些);
比如說查詢列出所有數據吧:
數據庫每個表每一列都有列名,正常的做法是遍歷數據庫表,dao層利用list儲存實體對象集,
數據庫表中每一行記錄一個實體的各個屬性:
public List<Account> list() { String sql = "select * from account"; List<Account> list = new ArrayList<>(); Connection conn = Shujuku.conn(); Statement state = null; ResultSet rs = null; try { state = conn.createStatement(); rs = state.executeQuery(sql); Account bean = null; while (rs.next()) { String a = rs.getString("name");//name為數據庫列名 String b = rs.getString("amount"); String c = rs.getString("money"); String d = rs.getString("time"); bean = new Account(a,b,c,d);//每一行創建一個實體 list.add(bean); } } catch (SQLException e) { e.printStackTrace(); } finally { Shujuku.close(rs, state, conn); } return list; }
連接excel表,同理:因為沒有列名,所以直接定義一個即可;(前提假設本人直到表的構造)
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import entity.Bus; public class ExcelTest { public static void main(String[] args) throws IOException{ /** * 讀取表格 * 輸出至前端 */ Bus bus=null; List<Bus> list = new ArrayList<>(); String filePath="D://dns.xls"; InputStream input = new FileInputStream(filePath); Workbook wb = null; wb = new HSSFWorkbook(input); //得到一個工作表對象; Sheet sheet = wb.getSheetAt(0); int rsRows = sheet.getLastRowNum();// 獲取sheet表中的總行數 // 遍歷行 //每一行成一個bus對象 for (int i=0;i<=rsRows;i++) { Row row = sheet.getRow(i); int id=0; String name=null; //遍歷行單元格,已知有兩列;第一列int型id,第二列String型name Cell cell1 = row.getCell(0); Cell cell2 = row.getCell(1);
//一定要檢驗是否為空 if(cell1==null||cell1.equals(null)||cell1.getCellType()==CellType.BLANK){
break;
}else {
//數值型
id=(int) cell1.getNumericCellValue();
}
if(cell2==null||cell2.equals(null)||cell2.getCellType()==CellType.BLANK){
break;
}else {
//字符串型
name= cell2.getStringCellValue();
} bus=new Bus(id,name); list.add(bus); System.out.print(id); System.out.println(name); }
wb.close();//記得關閉 } }
運行截圖:(這里將讀取表格的函數放入dao層,稍加改動)
記錄一下過程小錯:
提示空指針異常,也就是出現了為空的地方,可以理解為參數未傳遞成功問題,看提示:
意思像是它讀不懂以下包:
聲明:我之前已經給項目配置了路徑;
但是,任需要將jar包存入lib下如圖: