課程
/后端開(kāi)發(fā)
/Java
/Java 分頁(yè)原理與實(shí)踐(上)
視頻里的jdbcutil有下載地址么?網(wǎng)上看到的都不一樣啊。
2015-12-24
源自:Java 分頁(yè)原理與實(shí)踐(上) 3-4
正在回答
package?com.imooc.page.util; import?java.io.InputStream; import?java.sql.Connection; import?java.sql.DriverManager; import?java.sql.PreparedStatement; import?java.sql.ResultSet; import?java.sql.ResultSetMetaData; import?java.sql.SQLException; import?java.util.ArrayList; import?java.util.HashMap; import?java.util.List; import?java.util.Map; import?java.util.Properties; public?class?JdbcUtil?{ //?表示定義數(shù)據(jù)庫(kù)的用戶名 private?static?String?USERNAME?; //?定義數(shù)據(jù)庫(kù)的密碼 private?static?String?PASSWORD; //?定義數(shù)據(jù)庫(kù)的驅(qū)動(dòng)信息 private?static?String?DRIVER; //?定義訪問(wèn)數(shù)據(jù)庫(kù)的地址 private?static?String?URL; //?定義數(shù)據(jù)庫(kù)的鏈接 private?Connection?connection; //?定義sql語(yǔ)句的執(zhí)行對(duì)象 private?PreparedStatement?pstmt; //?定義查詢返回的結(jié)果集合 private?ResultSet?resultSet; static{ //加載數(shù)據(jù)庫(kù)配置信息,并給相關(guān)的屬性賦值 loadConfig(); } /** ?*?加載數(shù)據(jù)庫(kù)配置信息,并給相關(guān)的屬性賦值 ?*/ public?static?void?loadConfig()?{ try?{ InputStream?inStream?=?JdbcUtil.class .getResourceAsStream("/jdbc.properties"); Properties?prop?=?new?Properties(); prop.load(inStream); USERNAME?=?prop.getProperty("jdbc.username"); PASSWORD?=?prop.getProperty("jdbc.password"); DRIVER=?prop.getProperty("jdbc.driver"); URL?=?prop.getProperty("jdbc.url"); }?catch?(Exception?e)?{ throw?new?RuntimeException("讀取數(shù)據(jù)庫(kù)配置文件異常!",?e); } } public?JdbcUtil()?{ } /** ?*?獲取數(shù)據(jù)庫(kù)連接 ?*? ?*?@return?數(shù)據(jù)庫(kù)連接 ?*/ public?Connection?getConnection()?{ try?{ Class.forName(DRIVER);?//?注冊(cè)驅(qū)動(dòng) connection?=?DriverManager.getConnection(URL,?USERNAME,?PASSWORD);?//?獲取連接 }?catch?(Exception?e)?{ throw?new?RuntimeException("get?connection?error!",?e); } return?connection; } /** ?*?執(zhí)行更新操作 ?*? ?*?@param?sql ?*????????????sql語(yǔ)句 ?*?@param?params ?*????????????執(zhí)行參數(shù) ?*?@return?執(zhí)行結(jié)果 ?*?@throws?SQLException ?*/ public?boolean?updateByPreparedStatement(String?sql,?List<?>?params) throws?SQLException?{ boolean?flag?=?false; int?result?=?-1;//?表示當(dāng)用戶執(zhí)行添加刪除和修改的時(shí)候所影響數(shù)據(jù)庫(kù)的行數(shù) pstmt?=?connection.prepareStatement(sql); int?index?=?1; //?填充sql語(yǔ)句中的占位符 if?(params?!=?null?&&?!params.isEmpty())?{ for?(int?i?=?0;?i?<?params.size();?i++)?{ pstmt.setObject(index++,?params.get(i)); } } result?=?pstmt.executeUpdate(); flag?=?result?>?0???true?:?false; return?flag; } /** ?*?執(zhí)行查詢操作 ?*? ?*?@param?sql ?*????????????sql語(yǔ)句 ?*?@param?params ?*????????????執(zhí)行參數(shù) ?*?@return ?*?@throws?SQLException ?*/ public?List<Map<String,?Object>>?findResult(String?sql,?List<?>?params) throws?SQLException?{ List<Map<String,?Object>>?list?=?new?ArrayList<Map<String,?Object>>(); int?index?=?1; pstmt?=?connection.prepareStatement(sql); if?(params?!=?null?&&?!params.isEmpty())?{ for?(int?i?=?0;?i?<?params.size();?i++)?{ pstmt.setObject(index++,?params.get(i)); } } resultSet?=?pstmt.executeQuery(); //getMetaData()獲取結(jié)果集的所有字段的描述 ResultSetMetaData?metaData?=?resultSet.getMetaData(); //得到數(shù)據(jù)集的列數(shù) int?cols_len?=?metaData.getColumnCount(); while?(resultSet.next())?{ Map<String,?Object>?map?=?new?HashMap<String,?Object>(); for?(int?i?=?0;?i?<?cols_len;?i++)?{ String?cols_name?=?metaData.getColumnName(i?+?1); Object?cols_value?=?resultSet.getObject(cols_name); if?(cols_value?==?null)?{ cols_value?=?""; } map.put(cols_name,?cols_value); } list.add(map); } return?list; } /** ?*?釋放資源 ?*/ public?void?releaseConn()?{ if?(resultSet?!=?null)?{ try?{ resultSet.close(); }?catch?(SQLException?e)?{ e.printStackTrace(); } } if?(pstmt?!=?null)?{ try?{ pstmt.close(); }?catch?(SQLException?e)?{ e.printStackTrace(); } } if?(connection?!=?null)?{ try?{ connection.close(); }?catch?(SQLException?e)?{ e.printStackTrace(); } } } public?static?void?main(String[]?args)?{ JdbcUtil?jdbcUtil?=?new?JdbcUtil(); jdbcUtil.getConnection(); try?{ List<Map<String,?Object>>?result?=?jdbcUtil.findResult( "select?*?from?t_student",?null); for?(Map<String,?Object>?m?:?result)?{ System.out.println(m); } }?catch?(SQLException?e)?{ e.printStackTrace(); }?finally?{ jdbcUtil.releaseConn(); } } }
同樓上
自己寫一個(gè)多好,又鍛煉了自己,還加深了印像,用起來(lái)還方便。
舉報(bào)
通過(guò)總結(jié)常見(jiàn)的分頁(yè)樣式,手把手帶你實(shí)現(xiàn)java常見(jiàn)的分頁(yè)功能
1 回答能提供代碼嗎
1 回答Java分頁(yè)和PHP分頁(yè)原理相同么?
2 回答分頁(yè)插件問(wèn)題
1 回答hibernate分頁(yè)查詢案例
2 回答使用dao程模仿老師那個(gè)分頁(yè)功能,為啥網(wǎng)頁(yè)顯示500,后臺(tái)報(bào)錯(cuò),怎么解決?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購(gòu)課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2017-05-24
2016-08-22
同樓上
2015-12-24
自己寫一個(gè)多好,又鍛煉了自己,還加深了印像,用起來(lái)還方便。