亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:34日期:2022-08-17 18:38:15

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

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

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

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

Java DriverManager.getConnection() 方法用于獲得試圖建立到指定數(shù)據(jù)庫 URL 的連接。DriverManager 試圖從已注冊的 JDBC 驅動程序集中選擇一個適當?shù)尿寗映绦颉?/p>語法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ù)庫驅動 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ù)庫驅動 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ù)庫建立連接成功后的運行結果。代碼如下:

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ù)庫驅動 System.out.println('數(shù)據(jù)庫驅動加載成功!'); 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;}

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

到此這篇關于Java DriverManager.getConnection()獲取數(shù)據(jù)庫連接的文章就介紹到這了,更多相關Java DriverManager.getConnection() 內容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: Java
相關文章:
主站蜘蛛池模板: 又粗又大又爽 真人一级毛片 | 自偷自拍亚洲欧美清纯唯美 | 成人黄色大片 | 麻豆亚洲精品一区二区 | 亚洲欧美在线制服丝袜国产 | 国产精品女同一区二区久久夜 | 国内精品自在自线视频香蕉 | a国产| a毛片在线看片免费 | 国产精品第九页 | 毛片一区 | 一本久道热中字伊人 | 91国内外精品自在线播放 | 经典三级第一页 | 日韩欧美一区二区不卡看片 | 一级黄毛片 | 国产大尺度吃奶无遮无挡网 | 欧美一级片在线免费观看 | 国产高清第一页 | 亚洲免费视频观看 | 久久精品亚瑟全部免费观看 | 国产97色在线 | 亚洲 | 黄色福利小视频 | 国产精品一区二区三区四区五区 | 免费亚洲黄色 | 日韩中文字幕在线 | 一级特一级特色生活片 | 免费直接看黄 | 在线视频精品视频 | 日韩爽爽视频爽爽 | 久久er热在这里只有精品85 | 久久久久久久综合狠狠综合 | 91福利国产在线在线播放 | 性色影院 | a级国产乱理论片在线观看ai | 鲁大师在线观看在线播放 | 99国产精品九九视频免费看 | 天天色综 | 国产 日韩 在线 亚洲 字幕 中文 | 亚洲自偷自偷精品 | 亚洲欧洲精品国产二码 |