成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用JDBC訪問MySql的一個公共方法的解決方案

開發(fā) 后端
JDBC訪問MySQL的一個公共方法的解決方案,作者用了一個main方法直接測試,調(diào)用者在收到這個返回集合后可以根據(jù)實際情況進行解析,公共方法只是執(zhí)行SQL,然后得到數(shù)據(jù)連接進行數(shù)據(jù)訪問。

本來項目都是用到例如Hibernate這些工具的,可是因為現(xiàn)在項目要求現(xiàn)在又丫的回到基于JDK的解決方案了。

這個方法很簡單,但是對于數(shù)據(jù)的連接使用連接池,連接池也是直接初始化的。

  1. package com;  
  2. import java.sql.*;  
  3. import java.util.*;  
  4. import org.apache.commons.dbcp.BasicDataSource;  
  5. /**  
  6.  * @說明 數(shù)據(jù)庫連接管理  
  7.  * @author cuisuqiang  
  8.  */ 
  9. public class ConnectionManager {  
  10.     /**  
  11.      * @說明 執(zhí)行一條SQL  
  12.      */ 
  13.     @SuppressWarnings("unchecked")  
  14.     public static List<Object[]> excuteQuery(String sql) {  
  15.         Connection conn = null;  
  16.         PreparedStatement psta = null;  
  17.         ResultSet resultSet = null;  
  18.         List<Object[]> relist = new ArrayList<Object[]>(); // 總數(shù)據(jù)  
  19.         Object[] objects = null// 每行數(shù)據(jù)  
  20.         try {  
  21.             conn = ConnectionManager.getConn(); // 得到鏈接  
  22.             if(null != conn){  
  23.                 psta = conn.prepareStatement(sql);  
  24.                 resultSet = psta.executeQuery(); // 執(zhí)行查詢,返回結(jié)果接集合  
  25.                 int count = resultSet.getMetaData().getColumnCount(); // 一共有多少列數(shù)據(jù)  
  26.                 // 循環(huán)行  
  27.                 while (resultSet.next()) {  
  28.                     objects = new Object[count];  
  29.                     // 數(shù)據(jù)集索引從 1 開始,而數(shù)組存放時是從 0 開始  
  30.                     for (int i = 1; i <= count; i++) {  
  31.                         objects[i - 1] = resultSet.getObject(i);  
  32.                     }  
  33.                     relist.add(objects);  
  34.                 }  
  35.             }  
  36.         } catch (Exception e) {  
  37.             e.printStackTrace();  
  38.             relist = null;  
  39.         } finally {  
  40.             try {  
  41.                 if(null != resultSet)  
  42.                     resultSet.close();  
  43.                 if(null != psta)  
  44.                     psta.close();  
  45.                 if(null != conn)  
  46.                     conn.close();  
  47.             } catch (Exception e2) {  
  48.                   
  49.             }  
  50.         }  
  51.         return relist;  
  52.     }  
  53.     private static org.apache.commons.dbcp.BasicDataSource ds = null;  
  54.     static {  
  55.         ds = new BasicDataSource(); // 組建數(shù)據(jù)源對象  
  56.         int initialSize = 1// 連接池啟動時的初始值  
  57.         int maxActive = 10;  // 連接池的最大值  
  58.         int maxIdle = 1;     // 最大空閑值  
  59.         int minIdle = 1;     // 最小空閑值  
  60.         ds.setDriverClassName("com.mysql.jdbc.Driver");  
  61.         ds.setUrl("jdbc:mysql://192.168.154.128:3306/t2?useUnicode=true&characterEncoding=gbk");  
  62.         ds.setUsername("root");  
  63.         ds.setPassword("123456");  
  64.         ds.setInitialSize(initialSize);  
  65.         ds.setMaxActive(maxActive);  
  66.         ds.setMaxIdle(maxIdle);  
  67.         ds.setMinIdle(minIdle);  
  68.     }  
  69.     /**  
  70.      * 從數(shù)據(jù)源中取得數(shù)據(jù)庫連接  
  71.      */ 
  72.     public static Connection getConn() {  
  73.         try {  
  74.             return ds.getConnection();  
  75.         } catch (SQLException e) {  
  76.             e.printStackTrace();  
  77.         }  
  78.         return null;  
  79.     }  
  80. }  

我使用的是BasicDataSource,你可能需要兩個Jar包,commons-pool.jar,commons-dbcp.jar,連接mysql的話需要mysql-connector-java-3.1.13-bin.jar。

寫一個mian方法直接測試:

  1. package com;  
  2. import java.util.List;  
  3. public class T {  
  4.     @SuppressWarnings("unchecked")  
  5.     public static void main(String[] args) {  
  6.         try {  
  7.             List<Object[]> list = ConnectionManager.excuteQuery("select * from t");  
  8.             for (int i = 0; i < list.size(); i++) {  
  9.                 Object[] os = list.get(i);  
  10.                 for(Object o : os){  
  11.                     if (o instanceof String) {  
  12.                         String s = (String) o;  
  13.                         String newStr = new String(s.getBytes("ISO-8859-1"),"GBK");  
  14.                         System.out.print("字符串:" + newStr + "\t\t");  
  15.                     }else if(o instanceof Long){  
  16.                         Long s = (Long) o;  
  17.                         System.out.print("浮點值:" + s + "\t\t");  
  18.                     }else if(o instanceof Integer){  
  19.                         Integer s = (Integer) o;  
  20.                         System.out.print("整形值:" + s + "\t\t");  
  21.                     }else{  
  22.                         System.out.print("未知型:" + o + "\t\t");  
  23.                     }  
  24.                 }  
  25.                 System.out.println();  
  26.             }  
  27.         } catch (Exception e) {  
  28.             e.printStackTrace();  
  29.         }         
  30.     }  

我返回的是一個List集合,里面包含了一個Object數(shù)組。調(diào)用者在收到這個返回集合后可以根據(jù)實際情況進行解析,公共方法只是執(zhí)行SQL,然后得到數(shù)據(jù)連接進行數(shù)據(jù)訪問。

原文鏈接:http://cuisuqiang.iteye.com/blog/1458557

【編輯推薦】

  1. Java通過SSH2協(xié)議運行遠程程序
  2. Java Bean屬性命名規(guī)范問題分析
  3. Java Socket編程:初識TCP Socket
  4. Java Socket編程:如何識別網(wǎng)絡(luò)主機
  5. Java Socket編程:基本的術(shù)語和概念
責(zé)任編輯:林師授 來源: cuisuqiang的博客
相關(guān)推薦

2009-03-17 09:27:52

ITSMITIL解決方案

2009-08-04 15:18:11

C# Actor

2023-09-21 23:08:36

MySQL數(shù)據(jù)庫死鎖

2023-02-10 15:41:50

物聯(lián)網(wǎng)物聯(lián)網(wǎng)平臺

2009-07-28 11:37:55

7類布線端口

2019-07-08 10:01:33

物聯(lián)網(wǎng)IOT技術(shù)

2010-11-30 16:50:42

2018-11-05 11:06:38

openmediavaNAS 方案

2020-08-10 08:30:23

開發(fā)軟件開源

2013-08-26 09:18:52

2021-04-11 09:00:13

Fes.js前端

2011-08-05 13:41:18

mysql數(shù)據(jù)庫數(shù)據(jù)庫配置

2010-05-17 09:49:46

MySQL中文問題

2018-03-14 19:39:31

數(shù)據(jù)庫Oracle臨時表

2024-11-12 15:42:06

2012-09-06 11:25:46

IBMdw

2023-03-29 10:48:28

2010-05-28 19:39:28

MySQL 編碼轉(zhuǎn)換

2010-05-28 13:04:04

MySQL root

2011-07-25 09:32:28

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美成ee人免费视频 | 精品日韩一区 | 日日夜夜精品 | 国产免费一区二区三区 | 91精品国产乱码久久久久久 | 一区二区手机在线 | 国产精品久久国产精品99 | 亚洲自拍偷拍欧美 | 久久精品国产99国产精品 | 韩日一区二区 | 91av在线电影| 国产一区在线免费观看 | 国产真实精品久久二三区 | 久久精品色欧美aⅴ一区二区 | 日韩免费一区二区 | 福利片一区二区 | 在线成人免费视频 | 国产视频久久久久 | 一级黄色日本片 | 日韩精品一区二区三区视频播放 | 99精品免费视频 | 日韩精品一区二区三区在线播放 | 日韩精品网站 | 成人午夜激情 | 成人av片在线观看 | 免费一级淫片aaa片毛片a级 | 久久精品播放 | 一区二区三区亚洲 | 久久精品亚洲精品国产欧美 | 亚洲综合视频一区 | 久久久久一区二区三区 | 亚洲国产中文在线 | cao视频| 亚州精品天堂中文字幕 | 在线区| 久久在看 | 欧美精品首页 | 91精品国产综合久久婷婷香蕉 | 电影午夜精品一区二区三区 | 日韩一二区 | 国产一级片免费视频 |