監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 簽約案例 | 購買價格 | 在線試用 | 手機APP | 產(chǎn)品資料
X 關閉

設計以及設計模式:非主流存儲數(shù)據(jù)方式

申請免費試用、咨詢電話:400-8352-114

文章來源:泛普軟件

數(shù)據(jù)會存到哪兒,在仔細考慮這個問題前,我肯定毫無疑問的說,肯定存數(shù)據(jù)庫唄。其實不然,想想很多網(wǎng)站的圖片就沒有存到數(shù)據(jù)庫,直接保存到文件系統(tǒng)。再比如寫配置信息,既可能存到文件里,也可能存到數(shù)據(jù)庫里。除了這流行的方式外,,還有沒有別的地方可以存數(shù)據(jù)呢。

答案是有的??梢源嬖诔绦蚶?。最常見的例子是直接把配置信息寫在Java類的屬性里,這樣的好處是容易該,如果需要改邏輯又需要改配置信息,這樣只要在代碼里修改就好了,省的倆頭改(程序和配置文件),比如以下代碼

public class DBHelper {

private static String url = "jdbc:mysql://localhost/warehouse?user=root&password=";

static {

try {

Class.forName("com.mysql.jdbc.Driver").newInstance();

} catch (Exception ex) {

ex.printStackTrace();

throw new RuntimeException("沒有找到驅(qū)動!");

}

}

public static Connection getConnection() {

try {

Connection conn =

DriverManager.getConnection(url);

return conn;

} catch (SQLException ex) {

// handle any errors

ex.printStackTrace();

throw new RuntimeException("獲取數(shù)據(jù)庫連接錯誤!");

}

}

 

這個DBHelper 搞定一切,哪怕你是以后遇到切換成連接池,數(shù)據(jù)庫IP地址更改或者數(shù)據(jù)庫變成Oralce的需求。

在舉一個列子,數(shù)據(jù)庫里一個表放有注冊用戶信息,你也許想在首頁上顯示到目前為止會員姓李的有多少個,姓張的有多少個,姓王的有多少個.完成這個需求,一般的思路是后臺程序定期統(tǒng)計,然后倒入到一個數(shù)據(jù)庫表里,這個表內(nèi)容大概如下:

LastName total

李 778,000

張 478,000

王 218,000

然后寫一打端MVC程序去顯示在主頁上。這種方法是很好,不過還有更簡單的方法,那就是不用數(shù)據(jù)庫,后臺統(tǒng)計程序直接生成包含這些統(tǒng)計信息的JSP頁面就成。這樣的好處是省掉很多程序,而且維護也很方便,比如如果想夸大張姓人數(shù),那直接改JSP好了,誰都會,保證不出錯

還有一個不太常用一個列子,可以把圖片二進制編碼后當著一個字符串屬性,這樣就省的去讀圖片了,如公司的Logo信息或者你的產(chǎn)品的Logo

其實把數(shù)據(jù)放到程序里應該很廣泛的,比如老的C程序,再比如匯編程序都是數(shù)據(jù)和邏輯放到一起。只是由于現(xiàn)在MVC流行,數(shù)據(jù)被當著單獨的一部分考慮了,這要好處很多,但有時候,可以考慮以下非主流的方式,其好處就是倆個字:簡單。(IT專家網(wǎng)論壇)

發(fā)布:2007-04-21 14:07    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
相關文章:
長春OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設南路160號1層9號

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓

咨詢:400-8352-114

加微信,免費獲取試用系統(tǒng)

QQ在線咨詢

泛普長春OA行業(yè)資訊其他應用

長春OA軟件 長春OA新聞動態(tài) 長春OA信息化 長春OA快博 長春OA行業(yè)資訊 長春軟件開發(fā)公司 長春門禁系統(tǒng) 長春物業(yè)管理軟件 長春倉庫管理軟件 長春餐飲管理軟件 長春網(wǎng)站建設公司