第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何判斷我自己封裝的jdbc有沒(méi)有bug?

如何判斷我自己封裝的jdbc有沒(méi)有bug?

回首憶惘然 2018-12-07 06:44:29
package util; 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.LinkedList; import java.util.List; import java.util.Map; import java.util.ResourceBundle; public class Jdbc { private static ResourceBundle res = ResourceBundle.getBundle("jdbc"); private static String url = res.getString("db.url"); private static String user = res.getString("db.user"); private static String psw = res.getString("db.password"); private static String driverClass = res.getString("driverClass"); private static Integer poolSize = Integer.parseInt(res.getString("poolSize")); private static LinkedList<Connection> connections = new LinkedList<Connection>(); private Connection conn; private ResultSet rs; private ResultSetMetaData md; private PreparedStatement ps; private List<Map<String,Object>> list; private Map<String,Object> map; static{ try { Class.forName(driverClass); } catch (ClassNotFoundException e) { e.printStackTrace(); } initConnPool(); } //初始化連接池 private static void initConnPool() { for (int i = 0; i < poolSize ; i++) { try { Connection conn = DriverManager.getConnection(url, user, psw); connections.add(conn); } catch (SQLException e) { e.printStackTrace(); } } } //拿出一個(gè)連接 private synchronized void getConnection() { conn = connections.removeFirst(); } //放回一個(gè)連接 private synchronized void backConnection(Connection connection,PreparedStatement ps,ResultSet rs) { try { if(ps!=null) ps.close(); if(rs!=null) rs.close(); connections.addLast(connection); } catch (SQLException e) { e.printStackTrace(); } } //執(zhí)行數(shù)據(jù)查詢語(yǔ)句 public List<Map<String,Object>> dql(String sql,Object...objs){ getConnection(); list = new ArrayList<Map<String,Object>>(); try { ps = conn.prepareStatement(sql); for (int i = 1; i <= objs.length; i++) { ps.setObject(i, objs[i]); } rs = ps.executeQuery(); md = rs.getMetaData(); while (rs.next()) { map = new HashMap<String,Object>(); for (int i = 1; i <= md.getColumnCount(); i++) { String key = md.getColumnName(i); Object value = rs.getObject(i); map.put(key, value); } list.add(map); } } catch (SQLException e) { e.printStackTrace(); }finally { backConnection(conn,ps,rs); } return list; } //執(zhí)行數(shù)據(jù)管理語(yǔ)句 public boolean dml(String sql,Object...objs){ getConnection(); try { ps = conn.prepareStatement(sql); for (int i = 1; i <= objs.length; i++) { ps.setObject(i, objs[i]); } return ps.executeUpdate()==1?true:false; } catch (SQLException e) { e.printStackTrace(); }finally { backConnection(conn,ps,rs); } return false; } }
查看完整描述

3 回答

?
飲歌長(zhǎng)嘯

TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊

拿自己封裝的在不同場(chǎng)景使用一下就知道啦,或者直接找常用的jdbc第三方代碼比對(duì)一下,大差不差就好

查看完整回答
反對(duì) 回復(fù) 2018-12-16
?
蝴蝶不菲

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊

連接池這塊最好還是用第三方的,你這塊只是一個(gè)list來(lái)存放有很多場(chǎng)景沒(méi)辦法處理的,比如idle過(guò)長(zhǎng)的連接的回收,斷開重連和鏈接可用性的校驗(yàn)等。

查看完整回答
反對(duì) 回復(fù) 2018-12-16
?
BIG陽(yáng)

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

查看完整回答
反對(duì) 回復(fù) 2018-12-16
  • 3 回答
  • 0 關(guān)注
  • 505 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)