亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

JSP+Hibernate入門級實(shí)例--留言系統(tǒng)

系統(tǒng) 1723 0

????? 這是個用JSP+Hibernate編寫的非常簡單的留言系統(tǒng)例子,是個準(zhǔn)三層結(jié)構(gòu)(因?yàn)闉榱斯?jié)省時間著重介紹hibernate部分,省去的service層,轉(zhuǎn)而使用jsp頁面進(jìn)行業(yè)務(wù)處理,但并不是在jsp頁面上過多的編寫java代碼,而是使用專門的jsp作為業(yè)務(wù)處理層)?

開發(fā)工具:MyEclipse+Mysql

目錄結(jié)構(gòu)如下:

config(配置類)

??? BeanConfig.java
??? MessageConfig.java

constants(常量類)

?? Constants.java

dao(數(shù)據(jù)訪問類)
??
??? hibernate
?????? ?MessageDAO.java
??????? UserDAO.java
??? IMessageDAO.java
? ? IUserDAO.java
???

exception(異常類)
??? MessageAuthorityException.java
??? MessageDAOException.java
??? MessageException.java

model(模型類)
??? Message.hbm.xml
????Message.java
??? User.hbm.xml
??? User.java

sql (數(shù)據(jù)庫腳本)
?? scrip.sql

util(工具類)
??? DaoFactory.java
??? HibernateDAO.java
??? HibernateFilter.java
??? HibernateUtil.java

?

BeanConfig.java

package ?cn.hxex.message.config;

import ?org.apache.commons.lang.builder.ReflectionToStringBuilder;

import ?cn.hxex.message.exception.MessageException;

public ? class ?BeanConfig?
... {
????
private ?String?id;
????
private ?String?type;

????
public ?String?getId()? ... {
????????
return ?id;
????}

????
public ? void ?setId(String?id)? ... {
????????
this .id? = ?id;
????}

????
????
public ?String?getType()? ... {
????????
return ?type;
????}

????
public ? void ?setType(String?type)? ... {
????????
this .type? = ?type;
????}
????
????
????
private ?Object?instance;
????
public ?Object?getInstance()?
????
... {
????????
if (? null != instance?)? return ?instance;
????????
????????
try
????????
... {
????????????Class?cls?
= ?Class.forName(?getType()?);
????????????instance?
= ?cls.newInstance();
????????????
return ?instance;
????????}

????????
catch (?Exception?ex?)
????????
... {
????????????
throw ? new ?MessageException(? " Couldn't?find?class: " ? + ?getType()?);
????????}

????}

????
????
public ?String?toString()
????
... {
????????
return ?ReflectionToStringBuilder.toString(? this ?);
????}

}

MessageConfig

package ?cn.hxex.message.config;

import ?java.util.Hashtable;

import ?org.apache.commons.lang.builder.ReflectionToStringBuilder;

import ?cn.hxex.message.exception.MessageException;

/**?*/ /**
?*?系統(tǒng)配置信息類
?
*/

public ? class ?MessageConfig
... {
????
public ? static ?Hashtable?beans;

????
/**?*/ /**
?????*?構(gòu)造函數(shù)
?????
*/

????
public ?MessageConfig()
????
... {
????????beans?
= ? new ?Hashtable();
????}


????
/**?*/ /**
?????*?增加一個BeanConfig對象
?????*?
@param ?bean
?????
*/

????
public ? void ?addBean(BeanConfig?bean)
????
... {
????????beans.put(bean.getId(),?bean);
????}


????
/**?*/ /**
?????*?得到一個DAO接口對象的實(shí)例
?????*?
@param ?name?DAO接口對象的名稱
?????*?
@return ?指定DAO接口的實(shí)現(xiàn)類的實(shí)例
?????
*/

????
public ?Object?getBean(String?name)
????
... {
????????BeanConfig?config?
= ?(BeanConfig)?beans.get(name);

????????
if ?(config? == ? null )
????????
... {
????????????
throw ? new ?MessageException( " Couldn't?find?the?bean:? " ? + ?name);
????????}


????????
return ?config.getInstance();
????}


????
public ?String?toString()
????
... {
????????
return ?ReflectionToStringBuilder.toString( this );
????}

}

Constants

package ?cn.hxex.message.constants;

public ? class ?Constants? ... {
????
public ? static ? final ?String?SESSION_USER? = ? " cn.hxex.message.user " ;
}

?

IMessageDAO

package ?cn.hxex.message.dao;

import ?java.util.List;

import ?cn.hxex.message.model.Message;

public ? interface ?IMessageDAO?
... {
????
public ? void ?saveMessage(?Message?message?);
????
public ? void ?updateMessage(?Message?message?);
????
public ?List?getMessages(?);
????
public ? void ?deleteMessage(?String?id,?String?userId?);
????
public ?Message?getMessage(?String?id?);
}

IUserDAO

?

package ?cn.hxex.message.dao;

import ?cn.hxex.message.model.User;

public ? interface ?IUserDAO?
... {
????
public ? void ?saveUser(?User?user?);
????
public ?User?getUser(?String?username?);
????
public ?User?getUserById(?String?id?);
}

?

MessageDAO

package ?cn.hxex.message.dao.hibernate;

import ?java.util.List;

import ?cn.hxex.message.dao.IMessageDAO;
import ?cn.hxex.message.exception.MessageDAOException;
import ?cn.hxex.message.model.Message;
import ?cn.hxex.message.util.HibernateDAO;

/**?*/ /**
?*?IMessageDAO接口的Hibernate實(shí)現(xiàn)
?
*/

public ? class ?MessageDAO? extends ?HibernateDAO? implements ?IMessageDAO
... {

????
/**?*/ /**
?????*?保存留言信息
?????*?
?????*?
@param ?message
?????*????????????被保存的留言對象
?????
*/

????
public ? void ?saveMessage(Message?message)
????
... {
????????
super .saveObject(message);
????}


????
/**?*/ /**
?????*?得到所有的留言信息
?????*?
?????*?
@return ?返回所有的

JSP+Hibernate入門級實(shí)例--留言系統(tǒng)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品亚洲 | 国产精品亚洲精品久久成人 | 日本一级毛片视频网站 | 亚洲成人网页 | 一个色在线 | 久久婷婷色综合老司机 | 毛片xxx| 亚洲第五色综合网 | 爱爱视频免费网站 | 成人亚欧网站在线观看 | 国产l精品国产亚洲区在线观看 | 国产不卡福利 | 亚洲精品入口一区二区在线观看 | 在线成人国产 | 免费一级在线 | 亚洲欧美专区精品久久 | 亚洲性图第一页 | 波多野结衣免费免费视频一区 | 中文在线日韩 | 一级日本特黄毛片视频 | 国产亚洲女人久久久久久 | 国产在线精彩视频二区 | 俄罗斯午夜影院 | 日日草夜夜草 | 亚洲视频国产 | 香蕉视频网站在线播放 | 国产精品精品国产一区二区 | 国内亚州视频在线观看 | 欧美整片在线观看 | 亚洲精品成人a在线观看 | 福利午夜最新 | 中文字幕一区在线观看 | 亚洲 中文 欧美 日韩 在线人 | 日韩毛片免费观看 | 午夜撸| 99精品国产在热久久 | 天天躁狠狠躁狠狠躁夜夜躁 | 国产成人精品视频一区二区不卡 | 久久91精品久久久久久水蜜桃 | 在线a亚洲视频播放在线观看 | 亚洲成人视 |