欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java DriverManager.getConnection()獲取數(shù)據(jù)庫連接

 更新時間:2021年01月21日 11:51:05   作者:c語言中文網(wǎng)  
這篇文章主要介紹了Java DriverManager.getConnection()獲取數(shù)據(jù)庫連接,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

DriverManager.getConnection一共有四個重載方法,前三個由public修飾,用來獲取不同類型的參數(shù),這三個getConnection實際相當于一個入口,他們最終都會return第四個私有化的getConnection方法,最終向第四個私有化方法的傳入?yún)?shù)都是url,java.util.Properties,以及Reflection.getCallerClass(),這個方法是native的

其中Reflection.getCallerClass()是反射中的一個方法,這個方法用來返回他的調(diào)用類,也就說是哪個類調(diào)用了這個方法,Reflection類位于調(diào)用棧中的0幀位置,在JDK7以前,該方法可以傳入int n返回調(diào)用棧中從0幀開始的第n幀中的類,在JDK7中,需要設置java命令行選項Djdk.reflect.allowGetCallerClass來使用該方法,到了JDK8時,再調(diào)用該方法會導致UnsupportedOperationException異常。

JDK8中g(shù)etCallerClass使用方法變更為getCallerClass(),Reflection.getCallerClass()方法調(diào)用所在的方法必須用@CallerSensitive進行注解,通過此方法獲取class時會跳過鏈路上所有的有@CallerSensitive注解的方法的類,直到遇到第一個未使用該注解的類,避免了用Reflection.getCallerClass(int n) 這個過時方法來自己做判斷。

在這里每個getConnection都是用CallerSensitive修飾的,調(diào)用getCallerClass應該是獲取外面使用DriverManager.getConnection()的類的名稱,即在class A中調(diào)用了DriverManager.getConnection(),則返回class A。

Java DriverManager.getConnection() 方法用于獲得試圖建立到指定數(shù)據(jù)庫 URL 的連接。DriverManager 試圖從已注冊的 JDBC 驅(qū)動程序集中選擇一個適當?shù)尿?qū)動程序。

語法1

getConnection(String url)

參數(shù)說明:

  • url:訪問數(shù)據(jù)庫的 URL 路徑。

示例

下面的代碼利用 getConnection 方法創(chuàng)建與 MySQL 數(shù)據(jù)庫的連接,并返回連接對象。

public Connection getConnection(){
  Connection con=null;
  try{
   Class.forName("com.mysql.jdbc.Driver"); //注冊數(shù)據(jù)庫驅(qū)動
   String url = "jdbc:mysql://localhost:3306/test?user=root&password=root"; //定義連接數(shù)據(jù)庫的url
   con = DriverManager.getConnection(url); //獲取數(shù)據(jù)庫連接
   System.out.println("數(shù)據(jù)庫連接成功!");
  }catch(Exception e){
   e.printStackTrace();
  }
   return con; //返回一個連接
}

語法2

getConnection(String url,Properties info)

參數(shù)說明:

  • url:訪問數(shù)據(jù)庫的 URL 路徑。
  • info:是一個持久的屬性集對象,包括 user 和 password 屬性。

示例

下面的代碼利用 getConnection 方法第一種語法格式,創(chuàng)建與 MySQL 數(shù)據(jù)庫的連接,并返回連接對象。

public Connection getConnection(){
  Connection con = null; //定義數(shù)據(jù)庫連接對象
  Properties info = new Properties(); //定義Properties對象
  info.setProperty("user","root"); //設置Properties對象屬性
  info.setProperty("password","root");
  try{
   Class.forName("com.mysql.jdbc.Driver"); //注冊數(shù)據(jù)庫驅(qū)動
   String url = "jdbc:mysql://localhost:3306/test"; //test為數(shù)據(jù)庫名稱
   con = DriverManager.getConnection(url,info); //獲取連接數(shù)據(jù)庫的Connection對象
   System.out.println("數(shù)據(jù)庫連接成功!");
  }catch(Exception e){
   e.printStackTrace();
  }
   return con;//返回一個連接
}

語法3

Connection(String url,String user,String password)

參數(shù)說明:

  • url:訪問數(shù)據(jù)庫的 URL 路徑。
  • user:是訪問數(shù)據(jù)庫的用戶名。
  • password:連接數(shù)據(jù)庫的密碼。

典型應用

下面的代碼利用 getConnection 方法創(chuàng)建與 SQL Server 數(shù)據(jù)庫的連接,并返回連接對象。與數(shù)據(jù)庫建立連接成功后的運行結(jié)果。代碼如下:

private Connection con;
private String user = "sa"; //定義連接數(shù)據(jù)庫的用戶名
private String password = ""; //定義連接數(shù)據(jù)庫的密碼
private String className = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private String url = "jdbc:sqlserver://localhost:1433;DatabaseName=db_database01"; /**創(chuàng)建數(shù)據(jù)庫連接*/
public Connection getCon(){
 try{
  Class.forName(className);//加載數(shù)據(jù)庫驅(qū)動
  System.out.println("數(shù)據(jù)庫驅(qū)動加載成功!");
  con = DriverManager.getConnection(url,user,password); //連接數(shù)據(jù)庫
  System.out.println("成功地獲取數(shù)據(jù)庫連接!");
 }catch(Exception e){
  System.out.println("創(chuàng)建數(shù)據(jù)庫連接失??!");
  con = null;
  e.printStackTrace();
 }
 return con;
}

運行結(jié)果如下:
數(shù)據(jù)庫驅(qū)動加載成功!
成功地獲取數(shù)據(jù)庫連接!

到此這篇關(guān)于Java DriverManager.getConnection()獲取數(shù)據(jù)庫連接的文章就介紹到這了,更多相關(guān)Java DriverManager.getConnection() 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)窗體程序顯示日歷

    Java實現(xiàn)窗體程序顯示日歷

    這篇文章主要為大家詳細介紹了Java實現(xiàn)窗體程序顯示日歷,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • springBoot集成redis(jedis)的實現(xiàn)示例

    springBoot集成redis(jedis)的實現(xiàn)示例

    Redis是我們Java開發(fā)中,使用頻次非常高的一個nosql數(shù)據(jù)庫,本文主要介紹了springBoot集成redis(jedis)的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • springboot控制層傳遞參數(shù)為非必填值的操作

    springboot控制層傳遞參數(shù)為非必填值的操作

    這篇文章主要介紹了springboot控制層傳遞參數(shù)為非必填值的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 實例講解Java中random.nextInt()與Math.random()的基礎用法

    實例講解Java中random.nextInt()與Math.random()的基礎用法

    今天小編就為大家分享一篇關(guān)于實例講解Java中random.nextInt()與Math.random()的基礎用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Java判斷List中相同值元素的個數(shù)實例

    Java判斷List中相同值元素的個數(shù)實例

    今天小編就為大家分享一篇Java判斷List中相同值元素的個數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • BaseJDBC和CRUDDAO的寫法實例代碼

    BaseJDBC和CRUDDAO的寫法實例代碼

    這篇文章主要介紹了BaseJDBC和CRUDDAO的寫法實例代碼,代碼注釋十分詳細,具有一定參考價值,需要的朋友可以了解下。
    2017-09-09
  • Myeclipse工程發(fā)布時端口占用問題的解決方法

    Myeclipse工程發(fā)布時端口占用問題的解決方法

    這篇文章主要介紹了Myeclipse工程發(fā)布時端口占用問題的解決方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • springBoot中的CORS跨域注解@CrossOrigin詳解

    springBoot中的CORS跨域注解@CrossOrigin詳解

    這篇文章主要介紹了springBoot中的CORS跨域注解@CrossOrigin詳解,通常,服務于?JS?的主機(例如?example.com)與服務于數(shù)據(jù)的主機(例如?api.example.com)是不同的,在這種情況下,CORS?可以實現(xiàn)跨域通信,需要的朋友可以參考下
    2023-12-12
  • 一文了解自定義MVC框架實現(xiàn)

    一文了解自定義MVC框架實現(xiàn)

    這篇文章主要為大家詳細介紹一下MVC框架自定義實現(xiàn)過程,文中的示例代碼講解詳細,對我們學習或工作有一定幫助,需要的可以參考一下
    2022-07-07
  • Servlet+JavaBean+JSP打造Java Web注冊與登錄功能

    Servlet+JavaBean+JSP打造Java Web注冊與登錄功能

    比作MVC的話,控制器部分采用Servlet來實現(xiàn),模型部分采用JavaBean來實現(xiàn),而大部分的視圖采用Jsp頁面來實現(xiàn),接下來我們就來詳細看看如何用Servlet+JavaBean+JSP打造Java Web注冊與登錄功能
    2016-05-05

最新評論