java中JDBC當(dāng)中請給出一個(gè)DataSource的HelloWorld例子
馬克-to-win:在前面的jdbc的Helloworld程序當(dāng)中,我們用DriverManager來獲取數(shù)據(jù)庫連接。事實(shí)上通過這種方法獲取數(shù)據(jù)庫連接,是比較耗費(fèi)計(jì)算機(jī)資源的。當(dāng)然了,這也是沒有辦法的事兒。就像我們買貴書必須花大價(jià)錢一樣。原因是書本身就那么貴,也確實(shí)沒有辦法。但如果有1萬個(gè)學(xué)生看書,我們能不能建立一個(gè)小型圖書館?我們只需買100本書。而不是像沒有圖書館的情況下,共買1萬本書,人手一本。大家畢了業(yè)以后,每個(gè)人都銷毀自己的書。這就造成了極大的浪費(fèi)。但要注意的是,每個(gè)人看完書以后,把書要還回圖書館。數(shù)據(jù)源就像這里的圖書館。里面開始也是費(fèi)勁巴拉的建立了一堆連接。之后誰用誰就可以,獲取一個(gè)連接。但是用完以后,并不是銷毀連接,而是把連接簡單的返還給數(shù)據(jù)源,以供別的用戶再用(在我的參考目錄下,有個(gè)連接池實(shí)現(xiàn)程序,看看它的close方法,ds.getConnection返回的Connection的實(shí)例和前面jdbc helloworld的Connection實(shí)例不一樣。因?yàn)镃onnection只是一個(gè)接口,所以每次的實(shí)例的實(shí)現(xiàn)都是不一樣的。)。你可以想象,如果有很多客戶,都需要用連接的話,數(shù)據(jù)源技術(shù),無疑是一個(gè)非常好的選擇。在互聯(lián)網(wǎng)的環(huán)境下,成千上萬的用戶,從不同的機(jī)器上,訪問一臺(tái)機(jī)器,從它的數(shù)據(jù)庫當(dāng)中獲取信息。在這種情況下,數(shù)據(jù)源發(fā)揮了極大的優(yōu)勢。如果用DriverManager連接完一次,銷毀一次連接的話,一定是一場噩夢。馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號(hào): 73203。
1.DataSource的HelloWorld程序
例:6.1.1
import java.sql.*;
import javax.sql.*;
import com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource;
public class TestMark_to_win {
public static void main(String args[]) throws SQLException {
MysqlConnectionPoolDataSource ds = new MysqlConnectionPoolDataSource();
ds.setURL("jdbc:mysql://localhost:3306/test");
ds.setUser("root");
ds.setPassword("1234");
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from login");
while (rs.next()) {
System.out.println(rs.getString("id"));
System.out.println(rs.getString("name"));
}
System.out.println("ok");
}
}
結(jié)果是:
11
q
2
qq
3
qqq
ok