具體步驟如下:
創(chuàng)建AccessDbUtil類,連接數(shù)據(jù)庫
import?Java.sql.Connection; import?java.sql.DriverManager; /** ?*?獲取Access連接 ?*? ?*?@author?dofun ?* ?*/ public?class?AccessDbUtil { ????public?static?Connection?getDbConnection() ????{ ???? //?數(shù)據(jù)庫url ????????String?url?=?"jdbc:Access:///E:ICD10.mdb"; ????????Connection?conn?=?null; ????????try ????????{ ???????? //?驅(qū)動加載 ????????????Class.forName("com.hxtt.sql.access.AccessDriver").newInstance(); ????????????conn?=?DriverManager.getConnection(url); ????????????return?conn; ????????} ????????catch?(Exception?e) ????????{ ????????????System.out.println("Access連接失敗"); ????????} ????????return?conn; ????} }
二、讀取Access數(shù)據(jù)并保存在mysql數(shù)據(jù)庫
立即學習“Java免費學習筆記(深入)”;
1、獲取access數(shù)據(jù)庫連接
2、查詢表數(shù)據(jù),并保存
3、關(guān)閉連接資源
/** ?????*?同步疾病,手術(shù) ?????*? ?????*?@return ?????*/ ????@RequestMapping(value?=?"importJbbm") ????@ResponseBody ????public?String?importJbbm() ????{ ???? //?獲取數(shù)據(jù)庫連接 ????????Connection?conn?=?AccessDbUtil.getDbConnection(); ????????PreparedStatement?pst?=?null; ????????ResultSet?rs?=?null; ????????Boolean?a?=?true; ????????int?id?=?30000; ????????try ????????{ ????????????for?(int?i?=?1;?i?>?0;?i++) ????????????{ ???????????????? ????????????????//?手術(shù) ????????????????pst?=?conn.prepareStatement("select?*?from?sJBBMML?where?id?>?"?+?id?+?"?and?LB?=?'S'?"); ????????????????List<icdssbm>?jbs?=?new?ArrayList(); ???????????????? ????????????????rs?=?pst.executeQuery(); ????????????????while?(a?==?rs.next()) ????????????????{ ????????????????????if?(StringUtils.isNotBlank(rs.getString(2))) ????????????????????{ ????????????????????????IcdSsbm?jb?=?new?IcdSsbm(); ????????????????????????jb.setCode(rs.getString(2)); ????????????????????????jb.setName(rs.getString(5)); ????????????????????????jb.setType(rs.getString(11)); ????????????????????????jbs.add(jb); ????????????????????} ????????????????????else ????????????????????{ ????????????????????????a?=?false; ????????????????????????i?=?0; ????????????????????} ????????????????????//?System.out.println(rs.getString(2)); ????????????????????//?System.out.println(rs.getString(5)); ????????????????????//?System.out.println(rs.getString(11)); ????????????????} ????????????????if?(ListUtils.isNotEmpty(jbs)) ????????????????{ ????????????????????//?批量保存 ????????????????????icdSsbmService.saveBatch(jbs); ????????????????} ????????????????id?+=?1000; ????????????} ????????} ????????catch?(SQLException?e) ????????{ ????????} ????????finally ????????{ ????????????try ????????????{ ????????????????//?關(guān)閉資源 ????????????????rs.close(); ????????????????pst.close(); ????????????????conn.close(); ????????????} ????????????catch?(SQLException?e) ????????????{ ????????????} ????????} ????????return?"導入完成"; ????}</icdssbm>
問題:
如果Access數(shù)據(jù)庫設(shè)置了密碼,獲取連接的時候也加了密碼參數(shù),還是出現(xiàn)錯誤,找不到原因,最后就把Access數(shù)據(jù)庫密碼去掉了。
Access的分頁問題,一次只能查詢出1000條數(shù)據(jù),其實Access本身是有分頁查詢的,只是看起很繁瑣我并沒有用,而且在數(shù)據(jù)量大的時候性能并不是很好。所以我是采用循環(huán)的形式,簡單。
用的是Access_JDBC30.jar,java1.8竟然不支持Access了。網(wǎng)上好像有破解好的驅(qū)動,說是破了分頁查詢的限制。
推薦教程:access數(shù)據(jù)庫教程
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦