开发工具:MyEclipse+Mysql
目录结构如下:
config(配置类)
BeanConfig.java
MessageConfig.java
constants(常量类)
Constants.java
dao(数据访问类)
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 (数据库脚本)
scrip.sql
util(工具类)
DaoFactory.java
HibernateDAO.java
HibernateFilter.java
HibernateUtil.java
BeanConfig.java
packagecn.hxex.message.config;
importorg.apache.commons.lang.builder.ReflectionToStringBuilder;
importcn.hxex.message.exception.MessageException;
publicclassBeanConfig
...{
privateStringid;
privateStringtype;

publicStringgetId()...{
returnid;
}
publicvoidsetId(Stringid)...{
this.id=id;
}

publicStringgetType()...{
returntype;
}
publicvoidsetType(Stringtype)...{
this.type=type;
}
privateObjectinstance;
publicObjectgetInstance()
...{
if(null!=instance)returninstance;
try
...{
Classcls=Class.forName(getType());
instance=cls.newInstance();
returninstance;
}
catch(Exceptionex)
...{
thrownewMessageException("Couldn'tfindclass:"+getType());
}
}
publicStringtoString()
...{
returnReflectionToStringBuilder.toString(this);
}
}
MessageConfig
packagecn.hxex.message.config;
importjava.util.Hashtable;
importorg.apache.commons.lang.builder.ReflectionToStringBuilder;
importcn.hxex.message.exception.MessageException;

/***//**
*系统配置信息类
*/
publicclassMessageConfig
...{
publicstaticHashtablebeans;

/***//**
*构造函数
*/
publicMessageConfig()
...{
beans=newHashtable();
}

/***//**
*增加一个BeanConfig对象
*@parambean
*/
publicvoidaddBean(BeanConfigbean)
...{
beans.put(bean.getId(),bean);
}

/***//**
*得到一个DAO接口对象的实例
*@paramnameDAO接口对象的名称
*@return指定DAO接口的实现类的实例
*/
publicObjectgetBean(Stringname)
...{
BeanConfigconfig=(BeanConfig)beans.get(name);
if(config==null)
...{
thrownewMessageException("Couldn'tfindthebean:"+name);
}
returnconfig.getInstance();
}
publicStringtoString()
...{
returnReflectionToStringBuilder.toString(this);
}
}
Constants
packagecn.hxex.message.constants;

publicclassConstants...{
publicstaticfinalStringSESSION_USER="cn.hxex.message.user";
}
IMessageDAO
packagecn.hxex.message.dao;
importjava.util.List;
importcn.hxex.message.model.Message;
publicinterfaceIMessageDAO
...{
publicvoidsaveMessage(Messagemessage);
publicvoidupdateMessage(Messagemessage);
publicListgetMessages();
publicvoiddeleteMessage(Stringid,StringuserId);
publicMessagegetMessage(Stringid);
}
IUserDAO
packagecn.hxex.message.dao;
importcn.hxex.message.model.User;
publicinterfaceIUserDAO
...{
publicvoidsaveUser(Useruser);
publicUsergetUser(Stringusername);
publicUsergetUserById(Stringid);
}
MessageDAO
packagecn.hxex.message.dao.hibernate;
importjava.util.List;
importcn.hxex.message.dao.IMessageDAO;
importcn.hxex.message.exception.MessageDAOException;
importcn.hxex.message.model.Message;
importcn.hxex.message.util.HibernateDAO;

/***//**
*IMessageDAO接口的Hibernate实现
*/
publicclassMessageDAOextendsHibernateDAOimplementsIMessageDAO
...{

/***//**
*保存留言信息
*
*@parammessage
*被保存的留言对象
*/
publicvoidsaveMessage(Messagemessage)
...{
super.saveObject(message);
}

/***//**
*得到所有的留言信息
*
*@return返回所有的留言信息
*/
publicListgetMessages()
...{
Stringhsql="fromMessage";
returnsuper.getObjects(hsql);
}

/***//**
*删除留言信息
*
*@paramid
*要删除的留言信息的ID值
*@paramuserId
*执行删除操作的用户ID
*/
publicvoiddeleteMessage(Stringid,StringuserId)
...{
Messagemsg=getMessage(id);
if(msg==null)
...{
thrownewMessageDAOException("找不到你所要删除的留言!");
}
if(!msg.getUser().getId().equals(userId))
...{
thrownewMessageDAOException("你不能删除别人的留言!");
}
deleteObject(msg);
}

/***//**
*得到留言信息
*
*@paramid
*留言的ID值
*@return指定ID值得留言对象
*/
publicMessagegetMessage(Stringid)
...{
return(Message)getObject(Message.class,id);
}

/***//**
*更新留言信息
*
*@parammessage
*欲更新的留言对象
*/
publicvoidupdateMessage(Messagemessage)
...{
updateObject(message);
}
}
UserDAO
packagecn.hxex.message.dao.hibernate;
importcn.hxex.message.dao.IUserDAO;
importcn.hxex.message.exception.MessageDAOException;
importcn.hxex.message.model.User;
importcn.hxex.message.util.HibernateDAO;

/***//**
*IUserDAO接口的Hibernate实现
*/
publicclassUserDAOextendsHibernateDAOimplementsIUserDAO
...{

/***//**
*保存用户信息到数据库
*@paramuser被保存的用户对象
*/
publicvoidsaveUser(Useruser)
...{
if(user==null)
return;
Useru=getUser(user.getName());
if(u!=
本文介绍了一个基于JSP和Hibernate技术实现的简单留言系统。系统采用准三层架构,通过Hibernate进行数据持久化,并利用MyEclipse和MySQL完成开发部署。文章详细展示了系统的目录结构及核心代码。
1192

被折叠的 条评论
为什么被折叠?



