溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用JDBC訪問MySql公共方法

發(fā)布時間:2020-11-02 15:28:30 來源:億速云 閱讀:181 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)使用JDBC訪問MySql公共方法,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

package com;
import java.sql.*;
import java.util.*;
import org.apache.commons.dbcp.BasicDataSource;
/**
 * @說明 數(shù)據(jù)庫連接管理
 * @author cuisuqiang
 */
public class ConnectionManager {
	/**
	 * @說明 執(zhí)行一條SQL
	 */
	@SuppressWarnings("unchecked")
	public static List<Object[]> excuteQuery(String sql) {
		Connection conn = null;
		PreparedStatement psta = null;
		ResultSet resultSet = null;
		List<Object[]> relist = new ArrayList<Object[]>(); // 總數(shù)據(jù)
		Object[] objects = null; // 每行數(shù)據(jù)
		try {
			conn = ConnectionManager.getConn(); // 得到鏈接
			if(null != conn){
				psta = conn.prepareStatement(sql);
				resultSet = psta.executeQuery(); // 執(zhí)行查詢,返回結(jié)果接集合
				int count = resultSet.getMetaData().getColumnCount(); // 一共有多少列數(shù)據(jù)
				// 循環(huán)行
				while (resultSet.next()) {
					objects = new Object[count];
					// 數(shù)據(jù)集索引從 1 開始,而數(shù)組存放時是從 0 開始
					for (int i = 1; i <= count; i++) {
						objects[i - 1] = resultSet.getObject(i);
					}
					relist.add(objects);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			relist = null;
		} finally {
			try {
				if(null != resultSet)
					resultSet.close();
				if(null != psta)
					psta.close();
				if(null != conn)
					conn.close();
			} catch (Exception e2) {
				
			}
		}
		return relist;
	}
	private static org.apache.commons.dbcp.BasicDataSource ds = null;
	static {
		ds = new BasicDataSource(); // 組建數(shù)據(jù)源對象
		int initialSize = 1; // 連接池啟動時的初始值
		int maxActive = 10; // 連接池的最大值
		int maxIdle = 1;   // 最大空閑值
		int minIdle = 1;   // 最小空閑值
		ds.setDriverClassName("com.mysql.jdbc.Driver");
		ds.setUrl("jdbc:mysql://192.168.154.128:3306/t2&#63;useUnicode=true&characterEncoding=gbk");
		ds.setUsername("root");
		ds.setPassword("123456");
		ds.setInitialSize(initialSize);
		ds.setMaxActive(maxActive);
		ds.setMaxIdle(maxIdle);
		ds.setMinIdle(minIdle);
	}
	/**
	 * 從數(shù)據(jù)源中取得數(shù)據(jù)庫連接
	 */
	public static Connection getConn() {
		try {
			return ds.getConnection();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
}

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

寫一個mian方法直接測試:

package com; 
import java.util.List; 
public class T { 
  @SuppressWarnings("unchecked") 
  public static void main(String[] args) { 
    try { 
      List<Object[]> list = ConnectionManager.excuteQuery("select * from t"); 
      for (int i = 0; i < list.size(); i++) { 
        Object[] os = list.get(i); 
        for(Object o : os){ 
          if (o instanceof String) { 
            String s = (String) o; 
            String newStr = new String(s.getBytes("ISO-8859-1"),"GBK"); 
            System.out.print("字符串:" + newStr + "\t\t"); 
          }else if(o instanceof Long){ 
            Long s = (Long) o; 
            System.out.print("浮點值:" + s + "\t\t"); 
          }else if(o instanceof Integer){ 
            Integer s = (Integer) o; 
            System.out.print("整形值:" + s + "\t\t"); 
          }else{ 
            System.out.print("未知型:" + o + "\t\t"); 
          } 
        } 
        System.out.println(); 
      } 
    } catch (Exception e) { 
      e.printStackTrace(); 
    }     
  } 
}

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

上述就是小編為大家分享的使用JDBC訪問MySql公共方法了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI