JSP+Hibernate入门级实例--留言系统

这是个用JSP+Hibernate编写的非常简单的留言系统例子,是个准三层结构(因为为了节省时间着重介绍hibernate部分,省去的 service层,转而使用jsp页面进行业务处理,但并不是在jsp页面上过多的编写java代码,而是使用专门的jsp作为业务处理层)

开发工具: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

package cn.hxex.message.config;

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

import cn.hxex.message.exception.MessageException;

public class BeanConfig
... {
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

package cn.hxex.message.config;

import java.util.Hashtable;

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

import cn.hxex.message.exception.MessageException;

/***/ /**
*系统配置信息类
*/

public class MessageConfig
... {
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

package cn.hxex.message.constants;

public class Constants ... {
publicstaticfinalStringSESSION_USER="cn.hxex.message.user";
}

IMessageDAO

package cn.hxex.message.dao;

import java.util.List;

import cn.hxex.message.model.Message;

public interface IMessageDAO
... {
publicvoidsaveMessage(Messagemessage);
publicvoidupdateMessage(Messagemessage);
publicListgetMessages();
publicvoiddeleteMessage(Stringid,StringuserId);
publicMessagegetMessage(Stringid);
}

IUserDAO

package cn.hxex.message.dao;

import cn.hxex.message.model.User;

public interface IUserDAO
... {
publicvoidsaveUser(Useruser);
publicUsergetUser(Stringusername);
publicUsergetUserById(Stringid);
}

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实现
*/

public class MessageDAO extends HibernateDAO implements IMessageDAO
... {

/***//**
*保存留言信息
*
*
@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
package cn.hxex.message.dao.hibernate;

import cn.hxex.message.dao.IUserDAO;
import cn.hxex.message.exception.MessageDAOException;
import cn.hxex.message.model.User;
import cn.hxex.message.util.HibernateDAO;

/***/ /**
*IUserDAO接口的Hibernate实现
*/

public class UserDAO extends HibernateDAO implements IUserDAO
... {

/***//**
*保存用户信息到数据库
*
@paramuser被保存的用户对象
*/

publicvoidsaveUser(Useruser)
...{
if(user==null)
return;

Useru
=getUser(user.getName());
if(u!=</sp
分享到:
评论

你可能感兴趣的:(java,DAO,Hibernate,jsp,bean)