2019-06-20


單例模式

一個(gè)類只有一個(gè)實(shí)例,只能被自身實(shí)例化。

配置properties文件:添加driver、url、user、passwor鍵

類本身讀取

//餓漢式:

? ? ? ? public class Singleton{

? ? ? ? ? ? private static Singleton singleton = new Singleton ();

? ? ? ? ? ? private Singleton (){}

? ? ? ? ? ? public static Singleton getInstance(){return singletion;}

? ? ? }

//懶漢式:

? ? ? public class Singleton{

? ? ? ? ? ? private static Singleton singleton = null;

? ? ? ? ? ? public static synchronized Singleton getInstance(){

? ? ? ? ? ? ? ? if(singleton==null){

? ? ? ? ? ? ? ? ? ? singleton = new Singleton();

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? return singleton;

? ? ? ? ? ? }

? ? ? }

配置數(shù)據(jù)源—讀取數(shù)據(jù)源連接數(shù)據(jù)庫

步驟一:

?1,將數(shù)據(jù)庫的mysql-connector-java-5.0.8-bin.jar文件拷到tomcat安裝目錄下的lib文件夾中。

?2,在Tomcat的conf/context.xml

? 注意:在配置文件中不允許有中文,包括注釋內(nèi)的中文

<!--tomcat中加入數(shù)據(jù)庫驅(qū)動(dòng)文件-->

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

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

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

????????????? url="jdbc:mysql://localhost:3306/mydb2"/>


其中:

name:表示你的連接池的名稱也就是你要訪問連接池的地址

auth:是連接池管理權(quán)屬性,Container表示容器管理

type:是對(duì)象的類型

driverClassName:是數(shù)據(jù)庫驅(qū)動(dòng)的名稱

url:是數(shù)據(jù)庫的地址

username:是登陸數(shù)據(jù)庫的用戶名

password:是登陸數(shù)據(jù)庫的密碼

maxIdle,最大空閑數(shù),數(shù)據(jù)庫連接的最大空閑時(shí)間。超過空閑時(shí)間,數(shù)據(jù)庫連

接將被標(biāo)記為不可用,然后被釋放。設(shè)為0表示無限制。

MaxActive,連接池的最大數(shù)據(jù)庫連接數(shù)。設(shè)為0表示無限制。

maxWait ,最大建立連接等待時(shí)間。如果超過此時(shí)間將接到異常。設(shè)為-1表示

無限制。

3,配置應(yīng)用程序的web.xml文件(可選)

?? ?<resource-ref>

?? ??? ?<res-ref-name>jdbc/news</res-ref-name>

?? ??? ?<res-type>javax.sql.DataSource</res-type>

?? ??? ?<res-auth>Container</res-auth>

?? ?</resource-ref>

步驟二:

1,編寫java代碼,獲取與邏輯名相關(guān)聯(lián)的數(shù)據(jù)源對(duì)象?


public Connection getConnection2() {

?? ??? ?try {

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

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

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

?? ??? ??? ?//是環(huán)境命名上下文(environment naming context(ENC)

?? ??? ??? ?Context ctx2=(Context) cxt.lookup("java:comp/env");

?? ??? ??? ?DataSource ds=(DataSource) ctx2.lookup("jdbc/news");


?? ??? ??? ?/*另一種寫法,兩種方法本質(zhì)是不一樣的

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

?? ??? ??? ?*/

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

?? ??? ?} catch (NamingException e) {

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

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

?? ??? ?} catch (SQLException e) {

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

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

?? ??? ?}

?? ??? ?return conn;

?? ?}

步驟三:

??? 1,編寫jsp頁面:驗(yàn)證數(shù)據(jù)源連接

關(guān)鍵代碼:

<%

?? ?BaseDao baseDao=new BaseDao();

?? ?Connection conn=baseDao.getConnection2();


%>

<%=conn %>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容