? ? ? ? 今天我們來說說四種 Java 中獲取 mysql 連接的方式。
? ? ? ?· 第一種:傳統(tǒng)的連接方式度苔;
? ? ? ?· 第二種:讀取配置文件方式音诫;
? ? ? ?· 第三種:DBCP攻泼;
? ? ? ?·?第四種:c3p0竣付。
1. 傳統(tǒng)的連接方式:
? ? ? ? 我們先在工程根目錄下創(chuàng)建名為 lib 的文件夾诡延,將數(shù)據(jù)庫(kù)驅(qū)動(dòng)的 jar 包導(dǎo)入到 lib 文件夾,隨后 “add to build path”古胆。
1.注冊(cè)驅(qū)動(dòng)
? ? Class.forName("com.mysql.jdbc.Driver");
2.獲取連接
? ? String url = "jdbc:mysql://localhost:3306/shun";
? ? String user = "root";
? ? String password = "";
? ? Connection conn = DriverManager.getConnection(url, user, password);
3.打印測(cè)試
? ? System.out.println(conn);
? ? 結(jié)束肆良。
Codes:
2. 讀取配置文件方式
? ? ? ? 1)在工程根目錄下創(chuàng)建名為 lib 的文件夾,將數(shù)據(jù)庫(kù)驅(qū)動(dòng)的 jar 包導(dǎo)入到 lib 文件夾逸绎,隨后?
“add to build path”惹恃。
? ? ? ? 2)在 src 目錄下創(chuàng)建一個(gè) .properties 的配置文件,內(nèi)容如下:
1.讀取配置文件
? ? InputStream is = Demo02.class.getClassLoader().getResourceAsStream("db.properties");
2.創(chuàng)建Properties對(duì)象
? ? Properties pro = new Properties();
3.裝載
? ? pro.load(is);
4.解析
? ? String url = pro.getProperty("url");
? ? String user = pro.getProperty("user");
? ? String password = pro.getProperty("password");
5.獲取連接
? ? Connection conn = DriverManager.getConnection(url, user, password);
6.打印測(cè)試
? ? System.out.println(conn);
? ? 結(jié)束棺牧。
Codes:
3. DBCP
? ? ? ? 我們先在工程根目錄下創(chuàng)建名為 lib 的文件夾巫糙,將 DBUtils 和數(shù)據(jù)庫(kù)連接池的 jar 包一同導(dǎo)入到 lib 文件夾中,隨后 “add to build path”颊乘。
1.創(chuàng)建基礎(chǔ)數(shù)據(jù)源
? ? BasicDataSource bds = new BasicDataSource();
2.設(shè)置屬性
? ? bds.setDriverClassName("com.mysql.jdbc.Driver");
? ? bds.setUrl("jdbc:mysql://localhost:3306/shun");
? ? bds.setUsername("root");
? ? bds.setPassword("");
3.獲取連接
? ? Connection conn = bds.getConnection();
4.打印測(cè)試
? ? System.out.println(conn);
? ? 結(jié)束参淹。
Codes:
4. c3p0
什么是c3p0?c3p0是一個(gè)開源的數(shù)據(jù)庫(kù)連接池乏悄,目前使用它的開源項(xiàng)目有hibernate浙值,spring等。
? ? ? ? 1)在工程根目錄下創(chuàng)建名為 lib 的文件夾檩小,將數(shù)據(jù)庫(kù)驅(qū)動(dòng)亥鸠、c3p0 的jar 包一同導(dǎo)入到 lib 文件
夾,隨后 “add to build path”识啦。
? ? ? ? 2)在 src 目錄下創(chuàng)建一個(gè) c3p0.properties 的配置文件负蚊,內(nèi)容如下:
1.創(chuàng)建 ComboPooledDataSource 對(duì)象
? ? ComboPooledDataSource cpds = new ComboPooledDataSource();
2.獲取連接
? ? Connection conn = cpds.getConnection();
3.打印測(cè)試
? ? System.out.println(conn);
? ? 結(jié)束。
Codes:
? ? ? ? 注意:當(dāng)使用“new ComboPooledDataSource();”這段代碼時(shí)颓哮, ComboPooledDataSource 對(duì)象會(huì)直接去找默認(rèn)的配置文件名來加載你的配置文件家妆,所以說,配置文件的名字要起名為 c3p0.properties冕茅,并且里面的“c3p0.driverClass”等字段名也要與對(duì)象內(nèi)部的字段名相符伤极。
? ? ? ? 總結(jié):通過以上對(duì)四種 Java 中獲取 mysql?連接方式的介紹,相信各位已經(jīng)對(duì)此已有了初步的了解姨伤。第一種方法很明顯是采用硬編譯的方法哨坪,就是把數(shù)據(jù)都寫死,在之后的開發(fā)中更改起來會(huì)很麻煩乍楚,不易于的日常開發(fā)当编;第二種方法通過讀取配置文件的方法來獲取連接,下次在其他環(huán)境使用時(shí)徒溪,我們直接修改 .properties 的配置文件就行了忿偷,但其代碼量相對(duì)偏多金顿;第三種方法使用了已經(jīng)為我們寫好的 DBCPUtils 包,創(chuàng)建 BasicDataSource 對(duì)象之后鲤桥,直接調(diào)用其內(nèi)部方法設(shè)置相應(yīng)參數(shù)即可獲取連接揍拆,省去了注冊(cè)驅(qū)動(dòng)的步驟,執(zhí)行起來相對(duì)容易茶凳,降低了資源利用率嫂拴;而 c3p0 的優(yōu)點(diǎn)就更明顯了,短短幾行代碼就可以獲取到連接贮喧,代碼量少筒狠,效率高,適用于日常開發(fā)使用塞淹。