最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JDBC訪(fǎng)問(wèn)MySql公共方法實(shí)例解析

 更新時(shí)間:2020年10月31日 16:06:28   作者:cuisuqiang  
這篇文章主要介紹了基于JDBC訪(fǎng)問(wèn)MySql公共方法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

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

package com;
import java.sql.*;
import java.util.*;
import org.apache.commons.dbcp.BasicDataSource;
/**
 * @說(shuō)明 數(shù)據(jù)庫(kù)連接管理
 * @author cuisuqiang
 */
public class ConnectionManager {
	/**
	 * @說(shuō)明 執(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í)行查詢(xún),返回結(jié)果接集合
				int count = resultSet.getMetaData().getColumnCount(); // 一共有多少列數(shù)據(jù)
				// 循環(huán)行
				while (resultSet.next()) {
					objects = new Object[count];
					// 數(shù)據(jù)集索引從 1 開(kāi)始,而數(shù)組存放時(shí)是從 0 開(kāi)始
					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ù)源對(duì)象
		int initialSize = 1; // 連接池啟動(dòng)時(shí)的初始值
		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?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ù)庫(kù)連接
	 */
	public static Connection getConn() {
		try {
			return ds.getConnection();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}
}

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

寫(xiě)一個(gè)mian方法直接測(cè)試:

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("浮點(diǎn)值:" + 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(); 
    }     
  } 
}

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Maven添加Tomcat插件實(shí)現(xiàn)熱部署代碼實(shí)例

    Maven添加Tomcat插件實(shí)現(xiàn)熱部署代碼實(shí)例

    這篇文章主要介紹了Maven添加Tomcat插件實(shí)現(xiàn)熱部署代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 淺談Java中幾種常見(jiàn)的比較器的實(shí)現(xiàn)方法

    淺談Java中幾種常見(jiàn)的比較器的實(shí)現(xiàn)方法

    下面小編就為大家?guī)?lái)一篇淺談Java中幾種常見(jiàn)的比較器的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • SpringBoot使用Redis Stream實(shí)現(xiàn)輕量消息隊(duì)列的示例代碼

    SpringBoot使用Redis Stream實(shí)現(xiàn)輕量消息隊(duì)列的示例代碼

    Redis Stream 是 Redis 5.0 引入的一種數(shù)據(jù)結(jié)構(gòu),用于處理日志類(lèi)型的數(shù)據(jù),它提供了高效、可靠的方式來(lái)處理和存儲(chǔ)時(shí)間序列數(shù)據(jù),如事件、消息等,本文介紹了SpringBoot使用Redis Stream實(shí)現(xiàn)輕量消息隊(duì)列,需要的朋友可以參考下
    2024-08-08
  • java  中OkHttp的使用方法及實(shí)例

    java 中OkHttp的使用方法及實(shí)例

    這篇文章主要介紹了java 中OkHttp的使用方法及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • springboot整合redis配置詳細(xì)示例代碼

    springboot整合redis配置詳細(xì)示例代碼

    Redis是一種高性能的鍵值存儲(chǔ)數(shù)據(jù)庫(kù),而Spring Boot是一個(gè)簡(jiǎn)化了開(kāi)發(fā)過(guò)程的Java框架,將兩者結(jié)合可以輕松地在Spring Boot項(xiàng)目中使用Redis來(lái)實(shí)現(xiàn)數(shù)據(jù)緩存、會(huì)話(huà)管理和分布式鎖等功能,這篇文章主要給大家介紹了關(guān)于springboot整合redis配置的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • SpringBoot項(xiàng)目中出現(xiàn)不同端口跨域問(wèn)題的解決方法

    SpringBoot項(xiàng)目中出現(xiàn)不同端口跨域問(wèn)題的解決方法

    這篇文章主要介紹了SpringBoot項(xiàng)目中出現(xiàn)不同端口跨域問(wèn)題的解決方法,文中介紹了兩種解決方法,并給出了詳細(xì)的代碼供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03
  • 了解JAVA并發(fā)工具常用設(shè)計(jì)套路

    了解JAVA并發(fā)工具常用設(shè)計(jì)套路

    這篇文章主要介紹了了解JAVA并發(fā)工具常用設(shè)計(jì)套路,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下
    2019-06-06
  • springboot中thymeleaf模板使用詳解

    springboot中thymeleaf模板使用詳解

    這篇文章將更加全面詳細(xì)的介紹thymeleaf的使用。thymeleaf 是新一代的模板引擎,在spring4.0中推薦使用thymeleaf來(lái)做前端模版引擎。
    2017-05-05
  • feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗的解決方案

    feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗的解決方案

    這篇文章主要介紹了feign參數(shù)過(guò)多導(dǎo)致調(diào)用失敗的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • SpringSecurity請(qǐng)求授權(quán)規(guī)則配置與注解詳解

    SpringSecurity請(qǐng)求授權(quán)規(guī)則配置與注解詳解

    這篇文章主要介紹了SpringSecurity請(qǐng)求授權(quán)規(guī)則配置與注解詳解,我們常使用@Secured與@PreAuthorize兩個(gè)注解在進(jìn)入方法前進(jìn)行角色、權(quán)限的控制,進(jìn)入方法前數(shù)據(jù)的過(guò)濾@PreFilter注解偶爾會(huì)看到,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

新化县| 佛山市| 新化县| 轮台县| 天祝| 祁门县| 梅河口市| 保靖县| 新田县| 龙胜| 鱼台县| 宜丰县| 大城县| 台安县| 赤城县| 娄底市| 石门县| 甘泉县| 余干县| 武安市| 武清区| 普宁市| 南乐县| 彰化县| 乐清市| 靖边县| 长垣县| 嘉禾县| 杨浦区| 阜平县| 宁明县| 郑州市| 会同县| 万盛区| 集安市| 安丘市| 安溪县| 许昌市| 英山县| 大竹县| 蓬安县|