單例模式

單例模式锦溪,內(nèi)存中只有一個(gè)類会通,一個(gè)類只能實(shí)例化一次

餓漢模式

public class Person{

prvaite static Person p=new Person();

private Person(){}

public void? static Person?getInstance(){

return p;

}

}


懶漢模式

public clas Person{

prvaite??static Person p=null;

private Person(){}

public void? static Person?getInstance(){

if(p==null){

synchronized(Person.class){

p=new Person();

}

}

return p;

}

}



配置文件

driverClassName=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/day17?characterEncoding=utf8

username=root

password=root


讀取配置文件

package com.bdqn.until;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class ConfigManager {

//

? ? private static ConfigManager cm ;

? ? Properties properties;

? ? private? ConfigManager(){

//? ? ? ? String file = "D:\\workspace\\login\\src\\properties\\database.properties";

//? ? ? ? inputStream = new FileInputStream(file);

? ? ? ? String file = "database.properties";

? ? ? ? InputStream inputStream = ConfigManager.class.getClassLoader().getResourceAsStream(file);

? ? ? ? properties = new Properties();

? ? ? ? try {

? ? ? ? ? ? properties.load(inputStream);

? ? ? ? } catch (IOException e) {

? ? ? ? ? ? e.printStackTrace();

? ? ? ? }

? ? }

? ? public static? ConfigManager? getCm(){

? ? ? ? if(cm == null){

? ? ? ? ? ? synchronized(ConfigManager.class){

? ? ? ? ? ? ? ? cm = new ConfigManager();

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return? cm;

? ? }

? ? public String getProRes(String para){

? ? ? ? return? properties.getProperty(para);

? ? }

? ? public static void main(String[] args) {

? ? ? ? System.out.println(ConfigManager.getCm().getProRes("driver"));

? ? }

}



配置數(shù)據(jù)源

Tomcat?

context.xml

根節(jié)點(diǎn)添加Resource節(jié)點(diǎn)

<Resource name="jdbc/news"

? ? ? ? ? ? ? auth="Container"? type="javax.sql.DataSource"? maxActive="100"

? ? ? ? ? ? ? maxIdle="30" maxWait="10000" username="root"? password="root"

? ? ? ? ? ? ? driverClassName="com.mysql.jdbc.Driver"

? ? ? ? ? ? ? url="jdbc:mysql://127.0.0.1:3306/news"/>

name=指定Resource的JNDI名稱

? auth=指定管理Resource的Manager(Container由容器創(chuàng)建和管理淮韭,Application由Web應(yīng)用創(chuàng)建和管理)

? type=指定Resource的java類

? maxActive=指定連接池中處于活動(dòng)狀態(tài)的數(shù)據(jù)庫連接的最大數(shù)量

? maxIdle=指定連接池中處于空閑狀態(tài)的數(shù)據(jù)庫的最大數(shù)量

? maxWait=指定連接池中連接處于空閑的最長時(shí)間涩咖,超過這個(gè)時(shí)間會提示異常项钮,取值為-1华望,表示可以無限期等待,單位為毫秒(ms)

這里不要忘記:還需要將數(shù)據(jù)庫的驅(qū)動(dòng)jar包添加到录择,Tomcat安裝目錄下的lib文件夾中拔莱。


// 獲取數(shù)據(jù)庫連接

??public Connection getConnection2() {

???try {

????//初始化上下文

????Context cxt=new InitialContext();

????//獲取與邏輯名相關(guān)聯(lián)的數(shù)據(jù)源對象

????DataSource ds=(DataSource)cxt.lookup("java:comp/env/jdbc/news");

????conn=ds.getConnection();

???} catch (NamingException e) {

????e.printStackTrace();

???} catch (SQLException e) {

????// TODO Auto-generated catch block

????e.printStackTrace();

???}

???return conn;

??}

還有一點(diǎn)要注意:測試連接是否成功,需要在jsp頁面輸出connection隘竭,而不是在java類中Run As,應(yīng)為數(shù)據(jù)源配置在Tomcat中需要把Web項(xiàng)目放入Tomcat容器中運(yùn)行讼渊。jsp頁面代碼如下:

示例:


<%

BaseDao baseDao=new BaseDao();

Connection connection=baseDao.getConnection2();

?%>

<%=connection %>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末动看,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子爪幻,更是在濱河造成了極大的恐慌菱皆,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挨稿,死亡現(xiàn)場離奇詭異仇轻,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)奶甘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進(jìn)店門篷店,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事疲陕》接伲” “怎么了?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵蹄殃,是天一觀的道長携茂。 經(jīng)常有香客問我,道長诅岩,這世上最難降的妖魔是什么讳苦? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮吩谦,結(jié)果婚禮上鸳谜,老公的妹妹穿的比我還像新娘。我一直安慰自己逮京,他們只是感情好卿堂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著懒棉,像睡著了一般草描。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上策严,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天穗慕,我揣著相機(jī)與錄音,去河邊找鬼妻导。 笑死逛绵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的倔韭。 我是一名探鬼主播术浪,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寿酌!你這毒婦竟也來了胰苏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤醇疼,失蹤者是張志新(化名)和其女友劉穎硕并,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秧荆,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡倔毙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了乙濒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陕赃。...
    茶點(diǎn)故事閱讀 39,703評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凯正,到底是詐尸還是另有隱情毙玻,我是刑警寧澤,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布廊散,位于F島的核電站桑滩,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏允睹。R本人自食惡果不足惜运准,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望缭受。 院中可真熱鬧胁澳,春花似錦、人聲如沸米者。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蔓搞。三九已至胰丁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喂分,已是汗流浹背锦庸。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蒲祈,地道東北人甘萧。 一個(gè)月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像梆掸,于是被迫代替她去往敵國和親扬卷。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,601評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 一酸钦、單例模式 一個(gè)類里只有一個(gè)實(shí)例邀泉,只有它本身可以調(diào)用 其它類想要調(diào)用,需要它提供一個(gè)全局訪問點(diǎn) 二钝鸽、Pr...
    冷月_star閱讀 282評論 0 0
  • 單例模式 一個(gè)類只有一個(gè)實(shí)例; 1庞钢、單例類只能有一個(gè)實(shí)例拔恰。 2、單例類必須自己創(chuàng)建自己的唯一實(shí)例基括。 3颜懊、單例類必須...
    侯亞超閱讀 192評論 0 0
  • 1.單例模式定義 單例模式是一種常用的軟件設(shè)計(jì)模式,其定義是單例對象的類只能允許一個(gè)實(shí)例存在。 1)pr...
    醉羽翼閱讀 743評論 0 0
  • 單例模式 此類只能存在一個(gè)實(shí)例對象,且只能由本身創(chuàng)建咸这,別的類調(diào)用需通過本身創(chuàng)建的公共訪問的方法 懶漢模式: Pro...
    舒眉問卷閱讀 178評論 0 0
  • 單例模式:軟件設(shè)計(jì)模式夷恍,定義是單例對象的類只能允許一個(gè)實(shí)例存在。 1)properties讀取配置文件 ...
    呂游_b601閱讀 307評論 0 0