關於JDBC的連接深入了解
問題1:
答:這個jar包的作用 :顧名思義 mysql連接器java 5.1.35本
問題2:為什麼將mysql驅動包 添加到 classpath
編譯器不是按照classpath指定的路徑進行類查找的,那個參數是jvm虛擬機查找的路徑 你需要在編譯的時候指定類路徑或者將這些包加入你的工程的lib目錄中
問3:DriverManager類的作用
答: DriverManager類是JDBC的管理層,作用於用戶和驅動程序之間。 它跟蹤可用的驅動程序,並在資料庫和相應驅動程序之間建立連接。 DriverManager 類也處理諸如驅動程序登錄時間限制及登錄和跟蹤消息的顯示等事務。
問題4 :連接資料庫時為什麼要
Class.forName("com.mysql.jdbc.Driver");
答: Class.forName(「」);的作用是要求JVM查找並載入指定的類,首先要明白,java裡面任何class都要裝載在虛擬機上才能運行,而靜態代碼是和class綁定的,class裝載成功就表示執行了你的靜態代碼了,而且以後不會再走這段靜態代碼了。
也就是說這句話的意思將Dirver這個裝載到虛擬機上.(更詳細的含義請搜java反射)
PS:在JDBC規範中明確要求這個Driver類必須向DriverManager註冊自己,即任何一個JDBC Driver的 Driver類的代碼都必須類似如下:
public class MyJDBCDriver implements Driver {
static {
DriverManager.registerDriver(new MyJDBCDriver());
}
}
既然在靜態初始化器的中已經進行了註冊,所以我們在使用JDBC時只需要Class.forName(XXX.XXX);就可以了。
問5:Dirver 是屬於mysql連接器jar包裡面的還是java本身自帶的
答: 本身自帶的
PS:通過上例的Class.forName(String str)我們知道str這是一個路徑。
問6: conn=DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/sql110",
"root","root");這句話的解釋
答: 通過DriverManager的管理層來連接mysql資料庫本地的(127.0.0.1)3306埠中的sql110t資料庫,用戶名為root 密碼為root。
總結:引用csdn中onlymuxia的一段話
這樣說吧,大明統治全國,成祖(你)要向廣西下道聖旨,首先廣西要歸附大明(註冊了,朝廷就有專門管地方政權的部門 DriverManager ,廣西就成為了一個可用的伺服器);其次大明要與廣西取得聯繫,有關部門於是修了驛站(connection);當時沒無線電這種方便快捷的載體,只能用馬(Statement)傳遞聖旨,這馬不是路邊的,是驛站的;於是永樂帝(你)就可以下聖旨了
最後附一份簡單的mysql資料庫連接
import java.beans.Statement;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import com.mysql.jdbc.Driver;
import java.sql.ResultSet;
import java.sql.*;
public class jdbcDemo {
public static void main(String[] args) {
Class demo=null; java.sql.Statement st=null; ResultSet rs=null; Connection conn=null;try { //載入驅動 demo=Class.forName("com.mysql.jdbc.Driver");
System.out.println("載入驅動成功");
//獲取連接
conn=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/student",
"root","root");
System.out.println("連接成功");
st=conn.createStatement();
rs=st.executeQuery("SELECT name,age FROM t_major "); 發送SQL語句到資料庫中
System.out.println("發送成功");
while(rs.next()){
System.out.println(rs.getObject("name")
+"----");
System.out.println("讀取成功2");
}
finally{
//
try {
if(st!=null){
st.close();
}
} catch (Exception e2) {
// TODO: handle exception
}
try {
if(conn!=null){
conn.close();
}
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}
※掃碼登錄的安全性分析
※Java 介面——面向對象的精髓
※簡單的java的發牌洗牌小程序
※Java程序員面試的5 點小技巧
※Junit4使用學習-初步教程
TAG:java學習吧 |
※SMLZ自曝RW「解散」 JDG.SMLZ即將連接?
※WINDOWS怎麼查看電腦已連接的WIFI密碼
※沒有無線?TCL發了一款USB連接的5G熱點
※對等連接PC
※全球首款無需WIFI連接的AI智能音箱,DOSS藍牙音箱了解一下
※AI與安全重度連接,DEF CON China成就極客最好的時代
※結盟研華連接SCADA,普及未來工業4.0
※不使用殘差連接,ICML新研究靠初始化訓練上萬層標準CNN
※下一代 VR 設備將使用一根 USB-C 線纜連接
※RNG.Letme斷開連接,MLXG的評論意思要緊隨其後?
※3步以內利用中間人MitM攻擊從RDP連接中獲得密碼
※去掉3.5mm耳機插孔後,索尼移動推出了USB Type-C二合一連接線
※如何將USB設備連接到iPad
※全時在線,全新HUAWEI MateBook E引領筆記本行業進入全連接時代
※LOL:KT與KZ極限中單1換1?KT官宣與Bdd連接!
※MongoDB - 連接
※時刻連接,永遠在線—全新HUAWEI MateBook E
※BC26使用MQTT連接阿里雲指導
※BATT入局,小程序成超級APP連接一切的樞紐
※連接器的EMC效應,你了解多少?