欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
2.7 從數據庫中訪(fǎng)問(wèn)信息資源文件 - Jakarta Commons Cookbook中...
從數據庫中訪(fǎng)問(wèn)信息資源文件
問(wèn)題
想在數據庫而不是屬性文件中存儲所有標簽、信息和其他靜態(tài)文本,同時(shí)還要使用bean:message標簽來(lái)訪(fǎng)問(wèn)值。
解決方案
(1)    下載OJBMessageResources 的發(fā)布包,網(wǎng)址為http://prdownloads.sourceforge. net/struts/ojb-message-resources.zip?download。
(2)    將ZIP 文件解壓縮到計算機目錄中。
(3)    從ojb-message-resources/dist 文件夾中復制ojb-msg-res.jar 文件到您的應用的WEB-INF/lib 文件夾下。
(4)    從ojb-message-resources/config 文件夾中復制屬性、XML 和DTD 文件到您的應用程序的src 文件夾下。在構建應用程序時(shí),這些文件必須復制到WEB-INF/classes 文件夾中。
(5)    建立表用于存儲Objec Relational Bridge (OJB)元數據表。OJB 使用這些表來(lái)存儲內部映射信息。例2.12顯示了為MySQL 數據庫創(chuàng )建的這些表(即數據定義的SQL)。其他數據庫的有關(guān)語(yǔ)句包含在OJB中。
例2.12:OJB 元數據 DDL (MySQL)
CREATE TABLE ojb_dlist (
ID int NOT NULL default '0',
SIZE_ int default NULL,
PRIMARY KEY  (ID)
) TYPE=MyISAM;
CREATE TABLE ojb_dlist_entries (
ID int NOT NULL default '0',
DLIST_ID int NOT NULL default '0',
POSITION_ int default NULL,
OID_ longblob,
PRIMARY KEY  (ID)
) TYPE=MyISAM;
CREATE TABLE ojb_dmap (
ID int NOT NULL default '0',
SIZE_ int default NULL,
PRIMARY KEY  (ID)
) TYPE=MyISAM;
CREATE TABLE ojb_dmap_entries (
ID int NOT NULL default '0',
DMAP_ID int NOT NULL default '0',
KEY_OID longblob,
VALUE_OID longblob,
PRIMARY KEY  (ID)
) TYPE=MyISAM;
CREATE TABLE ojb_dset (
ID int NOT NULL default '0',
SIZE_ int default NULL,
PRIMARY KEY  (ID)
) TYPE=MyISAM;
CREATE TABLE ojb_dset_entries (
ID int NOT NULL default '0',
DLIST_ID int NOT NULL default '0',
POSITION_ int default NULL,
OID_ longblob,
PRIMARY KEY  (ID)
) TYPE=MyISAM;
CREATE TABLE ojb_hl_seq (
TABLENAME varchar(175) NOT NULL default '',
FIELDNAME varchar(70) NOT NULL default '',
MAX_KEY int default NULL,
GRAB_SIZE int default NULL,
PRIMARY KEY  (TABLENAME,FIELDNAME)
) TYPE=MyISAM;
CREATE TABLE ojb_lockentry (
OID_ varchar(250) NOT NULL default '',
TX_ID varchar(50) NOT NULL default '',
TIMESTAMP_ decimal(10,0) default NULL,
ISOLATIONLEVEL int default NULL,
LOCKTYPE int default NULL,
PRIMARY KEY  (OID_,TX_ID)
) TYPE=MyISAM;
CREATE TABLE ojb_nrm (
NAME varchar(250) NOT NULL default '',
OID_ longblob,
PRIMARY KEY  (NAME)
) TYPE=MyISAM;
CREATE TABLE ojb_seq (
TABLENAME varchar(175) NOT NULL default '',
FIELDNAME varchar(70) NOT NULL default '',
LAST_NUM int default NULL,
PRIMARY KEY  (TABLENAME,FIELDNAME)
) TYPE=MyISAM;
(6)    創(chuàng )建表,使用例2.13顯示的SQL DDL存儲信息資源數據。
例2.13:MessageResources DDL
create table application_resources (
subApp            varchar(100)     not null,
bundleKey         varchar(100)     not null,
locale            varchar(10)      not null,
msgKey            varchar(255)     not null,
val               varchar(255),
Primary Key(
subApp,
bundleKey,
locale,
msgKey
)
);
(7)    根據信息資源構建表。例2.14顯示了一個(gè)簡(jiǎn)單的用SQL加載表的方法。
例2.14:使用SQL 加載消息資源表
insert into application_resources (
subApp, bundleKey, locale, msgKey, val )
values ('', '', '', 'label.index.title',
'Struts Cookbook');
insert into application_resources (
subApp, bundleKey, locale, msgKey, val )
values ('', '', 'fr', 'label.index.title',
'Struts Livre de Cuisine');
(8)    修改Struts 配置文件,以便使用OJBMessageResources Factory。
<message-resources
factory="org.apache.struts.util.OJBMessageResourcesFactory"
parameter="."
/>
(9)    修改WEB-INF/classes 文件夾中的repository.xml(前三步相同),并對數據庫使用數據庫鏈接屬性。例2.15 顯示了MySQL 數據庫的配置文件。
例2.15:MySQL的OJB連接描述符
<jdbc-connection-descriptor
platform="MySQL"
jdbc-level="2.0"
driver="com.mysql.jdbc.Driver"
protocol="jdbc"
subprotocol="mysql"
dbalias="http://localhost:3306/test"
username="user"
password="pass"
/>
討論
Struts MessageResources 的職能是管理靜態(tài)文本,如錯誤信息、字段標簽、表題以及窗口標題。利用這種功能,文本以name/value 對的形式存儲在一個(gè)或多個(gè).properities文件中。這個(gè)文件就是信息資源,名稱(chēng)是邏輯鍵,值則是要顯示的文本。如果應用程序需要針對某種語(yǔ)言和國家,可以創(chuàng )建新的屬性文件。增加語(yǔ)言和國家編碼所組成的前綴將文件與其特定范圍(語(yǔ)言和國家)聯(lián)系起來(lái)。例如,法裔加拿大用戶(hù)的 MessageResources.properties 文件為MessageResources_fr_CA.properties。在本地文件中,屬性具體包含到某個(gè)地區的值。這種本地化資源的方法由 Java本身定義。
注意:有關(guān)語(yǔ)言和國家編碼的更多細節,可以參見(jiàn)http://java.sun.com/j2se/1.4.2/ docs/guide/intl/locale.doc.html。
這樣的職能適用于大多數中小型應用程序。您或許想用更便于管理的、持久的方式來(lái)存儲文本,例如數據庫。但Struts 不支持這種直接操作,而是通過(guò)擴展來(lái)支持。實(shí)際上,Struts 運用MessageResourcesFactory來(lái)創(chuàng )建MessageResources 對象,并在運行時(shí)存儲在servlet 上下文中??梢蕴峁┮粋€(gè)MessageResourcesFactory 的自定義實(shí)現,然后在配置文件中聲明這個(gè)實(shí)現:
<message-resources
factory="com.foo.CustomMessageResourcesFactory"
parameter="moduleName.bundleKey"
/>
參數屬性定義了Struts 的模塊名稱(chēng)以及bundle鍵(bundle名),信息資源庫為它創(chuàng )建了信息。由此,可以創(chuàng )建自己的信息資源庫,從數據庫中讀取消息。謝天謝地,這種想法已經(jīng)得以實(shí)現!James Mitchell,一個(gè)長(cháng)期設計Struts的人,已經(jīng)實(shí)現了OJBMessageResources,這個(gè)類(lèi)集合調整了對象相關(guān)型映射框架OBJ,提供了一個(gè)使用簡(jiǎn)便的數據庫驅動(dòng)MessageResource的實(shí)現方法。
如果對OJB不熟悉,不要因此而放棄使用這種方法。不需要了解OJB 就能使用OJBMessageResources。使用OJB將關(guān)系數據映射到對象數據非常簡(jiǎn)單。如果使用解決方案中的表架構,不需要做任何修改就可以映射數據。但如果想使用不同的架構,可以修改OJB基于XML中配置文件的映射來(lái)滿(mǎn)足需要。不需要修改Java編碼就能實(shí)現MessageResourcesFactory。OJBMessageResources文檔健全并且配有安裝向導和README文件。上述解決方案來(lái)自于這些說(shuō)明。
為了更有效地使用OJBMessageResources,了解數據庫架構如何映射到目標數據是很有幫助的。首先,架構僅需要創(chuàng )建一個(gè)表來(lái)存儲信息資源,使用單獨的表就簡(jiǎn)化了數據映射。表2.2描述了表的組成及其在struts中的用法。
表2.2:OJBMessageResources架構
列名稱(chēng)
相關(guān)的Struts概念
說(shuō)明
subApp
模塊前綴
非空。用空字符串 ("") 來(lái)代表默認模塊
bundleKey
使用多個(gè)集合時(shí)定位信息資源集合的鍵。它的值必須與Struts配置文件中message-resource元素key屬性的值匹配。該值與Struts標簽bundle屬性的值相關(guān)(例如,bean:message bundle="labels")
非空。用空字符串 ("") 來(lái)代表默認鍵。其他的名稱(chēng)分別為邏輯名"labels","headers"和"errors"
Locale
本地編碼代表本地信息。它的值是雙字母語(yǔ)言編碼和雙字母國家編碼的結合
非空。U用空字符串("")來(lái)代表默認區域。例如,"en_US" 表示English/United States,"fr" 表示 French
msgKey
用于查找信息的信息名稱(chēng)。對于所有的區域均相同. 它等于屬性文件中屬性左邊的值。該值與Struts 標簽中從MessageResources獲得的值的key屬性值相關(guān)
非空,任何時(shí)候都不為空。例如"title.hello.world"
val
與msgKey相關(guān)的值。它是本地文本,與屬性的右邊值相關(guān),由Struts標簽獲取和顯示
可為空。這是頁(yè)面上顯示的文本。例如, "Hello, World!"
注意,當OJBMessageResources使用單獨的數據庫表來(lái)存儲所有的信息資源時(shí),每個(gè)信息資源必須在struts-config.xml文件中使用message-resources元素進(jìn)行配置。換句話(huà)說(shuō),就是需要用bundleKey和 subApp為每一個(gè)信息資源配置一個(gè)message-resource加以標識。2.6節敘述了更多細節。
相關(guān)鏈接
2.6節敘述了如何使用多個(gè)信息資源配置Struts。第14章介紹了Struts應用程序國                       際化。
OJB 是Apache下的項目。關(guān)于OJB的完整信息可參見(jiàn)http://db.apache.org/ojb。
人們正在努力將Struts 信息資源分解為可重新利用的通用類(lèi)。關(guān)于Commons Resources 項目,http://jakarta.apache.org/commons/sandbox/resources/提供一個(gè)由屬性文件和其他持久化機制組成的信息資源的實(shí)現,這些機制包括OBJ、Hibernate、Torque和直接使用JDBC。希望在Struts的下一個(gè)版本能夠實(shí)現封裝Commons Resources的內部信息資源
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
mysql 基礎操作
解決struts2-core-2.1.2.jar!/struts-default
實(shí)戰Struts-Menu - 空間站 - BlogJava
[使用Python監控Oracle索引]Python連接MySQL
【竺】數據庫筆記13——mysql 創(chuàng )建表的同時(shí)創(chuàng )建索引
ECSHOP數據庫MYSQL現有數據表增加新的字段
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久