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

詳解JDBC的概念及獲取數據庫連接的5種方式

 更新時間:2022年09月19日 10:50:37   作者:夏志121  
Java?DataBase?Connectivity是將Java與SQL結合且獨立于特定的數據庫系統的應用程序編程接口,一種可用于執(zhí)行SQL語句的JavaAPI。本文主要介紹了JDBC的概念及獲取數據庫連接的5種方式,需要的可以參考一下

一、JDBC概念

Java DataBase Connectivity(Java數據庫連接技術) 它是將Java與SQL結合且獨立于特定的數據庫系統的應用程序編程接口(API-它是一種可用于執(zhí)行SQL語句的JavaAPI,即由一組用Java語言編寫的類與接口所組成)

JDBC的設計目的:

它是一種規(guī)范,設計出來的主要目的是為了讓各個數據庫開發(fā)商為Java程序員提供標準的數據訪問類和接口,使得獨立于DBMS的Java應用程序的開發(fā)成為可能(數據庫改變,驅動程序跟著改變,但是應用程序不變) Java設計規(guī)范接口,各大數據庫產商遵守規(guī)范實現,Java程序員不需要考慮實現細節(jié),只需要調用API即可

JDBC工作的基本流程:

一個基本的JDBC工作流程,分為以下幾步:

1、加載特定數據庫驅動器實現類,并注冊驅動器(Driver會注冊到DriverManager中)

2、根據特定的URL,返回可以接受此URL的數據庫驅動對象Driver

3、使用數據庫驅動 Driver 創(chuàng)建數據庫連接Connection會話

4、使用 Connection對象創(chuàng)建 用于操作sql的Statement對象

5、statement對象 .執(zhí)行 sql語句,返回結果ResultSet 對象

6、處理ResultSet中的結果

7、關閉連接,釋放資源

二、JDBC獲取數據庫連接的5種方式

方式一

public class ConnectionTest {
    @Test
    public void testConnection1() throws SQLException {
        //獲取Driver實現類對象
        Driver driver = new com.mysql.jdbc.Driver();
        //jdbc:mysql: 協議
        //localhost ip地址
        //3306 MySQL數據庫默認端口號
        //test 需要連接的數據庫名稱
        String url = "jdbc:mysql://localhost:3306/test";
        Properties info = new Properties();
        //設置連接的用戶名和名稱,user和password是固定的寫法
        info.setProperty("user","root");
        info.setProperty("passwor","root");
 
        Connection connect = driver.connect(url, info);
 
        System.out.println(connect);
    }
}

方式二

public class ConnectionTest {
    @Test
    public void testConnection2() throws Exception {
        //1.使用反射獲取Driver實現類對象
        Class<?> clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();
        //2.提供需要連接的數據庫
        String url = "jdbc:mysql://localhost:3306/test";
        //3.提供連接需要的用戶和密碼
        Properties info = new Properties();
        info.setProperty("user","root");
        info.setProperty("password","lxq");
        //獲取鏈接
        Connection connect = driver.connect(url, info);
 
        System.out.println(connect);
    }
}

方式二是方式一的迭代,與方式一相比沒有出現第三方的API,有較好的移植性

方式三

public class ConnectionTest {
    @Test
    public void testConnection3() throws Exception {
        //1.使用反射獲取Driver實現類對象
        Class<?> clazz = Class.forName("com.mysql.jdbc.Driver");
        Driver driver = (Driver) clazz.newInstance();
 
        //2.提供需要連接的數據庫
        String url = "jdbc:mysql://localhost:3306/test";
        //3.提供連接需要的用戶和密碼
        String user = "root";
        String passwor = "root";
        //4.注冊驅動
        DriverManager.registerDriver(driver);
        //5.獲取連接
        Connection connection = DriverManager.getConnection(url, user, passwor);
 
        System.out.println(connection);
    }
}

使用DriverManager(驅動管理器)替換Driver,DriverManager是jdk提供的一個類,用來完成獲取連接的操作

方式四

public class ConnectionTest {
    @Test
    public void testConnection4() throws Exception {
        //1.提供連接所需信息
        String url = "jdbc:mysql://localhost:3306/test";
        String user = "root";
        String passwor = "root";
        //2.使用反射加載驅動
        Class.forName("com.mysql.jdbc.Driver");
        //3.獲取連接
        Connection connection = DriverManager.getConnection(url, user, passwor);
 
        System.out.println(connection);
    }
}

與方式三相比,方式四省略了如下代碼:

Driver driver = (Driver) clazz.newInstance();
DriverManager.registerDriver(driver);

理由是,在com.mysql.jdbc.Driver類中有如下所示的靜態(tài)代碼塊,使用Class.forName()加載這個驅動時就會執(zhí)行這個靜態(tài)代碼塊,實現了注冊驅動

static {
    try {
        DriverManager.registerDriver(new Driver());
    } catch (SQLException var1) {
        throw new RuntimeException("Can't register driver!");
    }
}

方式五

public class ConnectionTest {
    @Test
    public void testConnection5() throws Exception {
        //1.獲取連接所需信息
        InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
 
        Properties info = new Properties();
        info.load(is);
        String url = info.getProperty("url");
        String user = info.getProperty("user");
        String password = info.getProperty("passwor");
        String driverClass = info.getProperty("driverClass");
        //2.使用反射加載驅動
        Class.forName(driverClass);
        //5.獲取連接
        Connection connection = DriverManager.getConnection(url, user, passwor);
 
        System.out.println(connection);
    }
}

其中配置文件jdbc.properties在src目錄下:

url=jdbc:mysql://localhost:3306/test
user=root
passwor=root;
driverClass=com.mysql.jdbc.Driver

使用配置文件的好處:

1、實現代碼和數據的分離,如果需要修改配置信息,直接在配置文件中進行修改,不需要深入代碼

2、如果修改配置信息,省去了重新編譯的過程=

到此這篇關于詳解JDBC的概念及獲取數據庫連接的5種方式的文章就介紹到這了,更多相關JDBC數據庫連接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 純Java代碼實現流星劃過天空

    純Java代碼實現流星劃過天空

    本文給大家介紹純java代碼實現流星劃過天空,包括流星個數,流星飛行的速度,色階,流星大小相關變量設置。對java流星劃過天空特效代碼感興趣的朋友可以參考下本文
    2015-10-10
  • CentOS 7下JDK8的詳細安裝步驟

    CentOS 7下JDK8的詳細安裝步驟

    這篇文章主要為大家介紹了CentOS 7下JDK8的詳細安裝步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java并發(fā)之AQS與自旋鎖詳解

    Java并發(fā)之AQS與自旋鎖詳解

    這篇文章主要介紹了Java并發(fā)之AQS與自旋鎖詳解,類如其名,抽象的隊列式的同步器,AQS定義了一套多線程訪問共享資源的同步器框架,許多同步類實現都依賴于它,如常用的ReentrantLock/Semaphore/CountDownLatch,需要的朋友可以參考下
    2023-10-10
  • 如何設置springboot禁止日志輸出到控制臺

    如何設置springboot禁止日志輸出到控制臺

    文章總結:本文主要介紹了SpringBoot項目中使用SLF4J記錄日志時,日志默認輸出到控制臺的原因及解決方法,日志框架如Logback默認會將日志輸出到控制臺,可以通過`logback-spring.xml`配置文件或配置類來禁止日志輸出到控制臺,并設置日志輸出級別
    2025-01-01
  • SpringBoot集成EasyExcel實現Excel導入的方法

    SpringBoot集成EasyExcel實現Excel導入的方法

    這篇文章主要介紹了SpringBoot集成EasyExcel實現Excel導入的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java Feign微服務接口調用方法詳細講解

    Java Feign微服務接口調用方法詳細講解

    現如今微服務架構十分流行,而采用微服務構建系統也會帶來更清晰的業(yè)務劃分和可擴展性。java如果使用微服務就離不開springcloud,我這里是把服務注冊到nacos上,各個服務之間的調用使用feign
    2023-01-01
  • Java實現堆排序(Heapsort)實例代碼

    Java實現堆排序(Heapsort)實例代碼

    這篇文章主要介紹了Java實現堆排序(Heapsort)實例代碼,有需要的朋友可以參考一下
    2013-12-12
  • Spring遠程調用HttpClient/RestTemplate的方法

    Spring遠程調用HttpClient/RestTemplate的方法

    這篇文章主要介紹了Spring遠程調用HttpClient/RestTemplate的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java實戰(zhàn)項目之斗地主和斗牛游戲的實現

    Java實戰(zhàn)項目之斗地主和斗牛游戲的實現

    讀萬卷書不如行萬里路,只學書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Java實現一個斗地主和一個斗牛游戲,大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • java Arrays工具類實例詳解

    java Arrays工具類實例詳解

    這篇文章主要介紹了java Arrays工具類實例詳解的相關資料,需要的朋友可以參考下
    2017-07-07

最新評論

察隅县| 富源县| 衡水市| 高淳县| 玛曲县| 无棣县| 灵丘县| 东阳市| 工布江达县| 县级市| 漯河市| 盐亭县| 龙南县| 福清市| 岳西县| 徐汇区| 青州市| 潮州市| 抚顺市| 威信县| 商水县| 奇台县| 宝山区| 扎鲁特旗| 柯坪县| 垦利县| 六安市| 南昌市| 玉田县| 津市市| 石家庄市| 杨浦区| 云林县| 彝良县| 靖宇县| 东兴市| 孙吴县| 霍城县| 六安市| 湖南省| 太原市|