av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

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

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

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

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

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

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

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

語(yǔ)法1

getConnection(String url)

參數(shù)說(shuō)明:

url:訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的 URL 路徑。

示例

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

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

getConnection(String url,Properties info)

參數(shù)說(shuō)明:

url:訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的 URL 路徑。 info:是一個(gè)持久的屬性集對(duì)象,包括 user 和 password 屬性。

示例

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

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

Connection(String url,String user,String password)

參數(shù)說(shuō)明:

url:訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的 URL 路徑。 user:是訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的用戶(hù)名。 password:連接數(shù)據(jù)庫(kù)的密碼。

典型應(yīng)用

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

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

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

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 亚洲视频三区 | 国产又爽又黄免费视频 | 欧美日韩在线精品 | 999精品视频| 五月天毛片 | 色婷婷狠狠| 在线不欧美 | 国产美女免费 | 日韩视频网 | 日韩在线视频播放 | 亚洲男人天堂网 | 亚洲激情一区二区 | 青草导航 | 亚洲综合在线视频 | 91中文在线 | 午夜av在线播放 | 国产男女视频 | 亚洲精品一区二区在线观看 | 欧美久久久久久 | av在线免费观看网站 | 精品日韩在线观看 | 久久机热| 欧美国产激情 | 亚洲爽妇网| 成人欧美激情 | 欧美专区在线观看 | 国产黄色免费观看 | 一区二区三区免费在线观看 | 天天操一操 | 亚洲精品日韩精品 | 亚洲精品成人在线 | 久草国产视频 | 国产精品视频在线观看 | 黄色小视频免费看 | 91精品麻豆 | 欧美日韩高清 | 91成人精品一区在线播放 | 亚洲激情中文字幕 | 黄色大片视频 | 黑人巨大精品欧美一区二区 | 日本欧美久久久久免费播放网 |