發出疑問:JDBC是什麼?java
JDBC是java操縱數據庫的一種方法的總稱。mysql
在介紹倆種鏈接數據庫方式以前,還有一項必須進行的操做,即加入mysql驅動sql
* 加入mysql驅動方法:
* 一、解壓mysql-connector-java-5.1.7.zip
* 二、在當前項目下新建lib文件(目錄)
* 三、把mysql-connector-java-5.1.7-bin.jar複製到lib目錄下數據庫* 四、右鍵mysql-connector-java-5.1.7-bin.jar點擊build-path,add to BuildPath加入到類路徑下.sui
要知道咱們操縱數據庫,必須獲取到數據庫的許可,即設置用戶,密碼,url等信息。因此咱們首先必需要作的就是獲取數據庫的鏈接。url
得到數據庫鏈接的類:Connection(也就是咱們接下來操縱數據庫的基礎)spa
有倆個方法:code
createStatement() : 獲取Statement對象對象
prepareStatement(SQL) : 獲取PreparedStatement對象接口
close() : 關閉數據庫鏈接,在獲取數據庫鏈接後必需要關閉。
第一種方式:直接設置數據庫的鏈接信息(不推薦這種方法)
Driver:是一個接口,有數據廠商實現,能從其中獲取數據庫鏈接
//一、 建立一個Driver實現類對象
Driver driver=new com.mysql.jdbc.Driver();
//二、準備鏈接數據庫的基本信息:
//url(String類型,肯定鏈接的IP端口號和數據庫),
//info(Properties類型,設置user,password)。
String url="jdbc:mysql://localhost:3306/test";
Properties info=new Properties();
info.put("user","root"); //設置數據庫使用者
info.put("password","123456"); //設置數據庫密碼
//三、調用Driver 接口的connect(url,info)獲取數據庫鏈接
Connection connection=driver.connect(url,info);
System.out.println(connection);
第二種方式:在配置文件裏設置好鏈接數據庫的基本信息,經過讀取配置文件得到鏈接。(此方法較爲通用)
如何編寫一個通用的獲取數據庫鏈接方法?
在類同目錄下添加一個配置文件,將url,user,password放入一個配置文件,經過修改配置文件達到不一樣數據庫的鏈接實現
首先在scr目錄下(注意:必定要是src目錄下)建立一個配置文件(配置文件以.properties結尾)
在配置文件下設置如下信息:
driver=com.mysql.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/test user=root password=123456
回到獲取鏈接方法:
String drivername=null; String url=null; String user=null; String password=null; //一、讀取配置文件 InputStream in=get_Connection.class.getClassLoader().getResourceAsStream("jdbc.properties"); Properties properties=new Properties(); //建立讀取配置文件對象(properties) properties.load(in); //逐行讀取配置文件 drivername=properties.getProperty("driver"); url=properties.getProperty("jdbcUrl"); user=properties.getProperty("user"); password=properties.getProperty("password"); //二、註冊驅動(用DriverManager,由於DriverManager已經內置靜態代碼塊,因此只需一句話) Class.forName(drivername); //三、經過DriverManager.getConnection(url,user,password)鏈接數據庫 Connection connection=DriverManager.getConnection(url,user,password);
補充知識:
/* 1.與普通程序不一樣的是,Java程序(class文件)並非本地的可執行程序。當運行Java程序時,首先運行JVM(Java虛擬機), 而後再把Java class加載到JVM裏頭運行,負責加載Java class的這部分就叫作Class Loader。中文叫作類加載器。 Java虛擬機中能夠安裝多個類加載器,系統默認三個主要類加載器,每一個類負責加載特定位置的類:BootStrap,ExtClassLoader,AppClassLoader 類加載器也是Java類,由於其餘是java類的類加載器自己也要被類加載器加載,顯然必須有第一個類加載器不是否是java類,這正是BootStrap。 Java虛擬機中的全部類裝載器採用具備父子關係的樹形結構進行組織,在實例化每一個類裝載器對象時,須要爲其指定一個父級類裝載器對象或者默認採用系統類裝載器爲其父級類加載。 2.類加載指的是將類的class文件讀入內存,併爲之建立一個java.lang.Class對象,而系統中全部的類,它們實際上也是對象,稱爲類對象, 它們都是java.lang.Class的實例,虛擬機爲每種類型管理一個獨一無二的Class對象,也就是說,每一個類(型)都有一個Class對象. 3. java中class.forName和classLoader均可用來對類進行加載。properties通常放配置信息的,存放的是鍵值對格式.如userName=root 這樣便於管理! jdbcUtil.class 獲得的是class JdbcUtil ,class對象是java.lang.Class<T>這個類生成的對象,每一個類都有一個class對象 getResourceAsStream(),返回的是InputStream 對象, Properties類是用來操做properties文件的 props.load(in) ,加載進來,進行一行一行的讀取 類加載器屬於動態的載入,能夠提升讀寫效率. 還能夠用java.util.ResourceBundle的類來讀取properties文件.ResourceBundle.getBundle("文件名").getString("鍵");*/