如何利用Hibernate开发Blog
首先我们需要建立项目(开发工具采用MYECLIPS3。6),导入STRUTS+HIBERNATE包,然后配置SRC跟目录下的Hibernate。cfg。xml。 本文中的示例使用的是MySQL数据库,详细的配置如下:
root
jdbc:mysql://localhost:3306/tonnyblog
net。 sf。hibernate。dialect。MySQLDialect
org。gjt。mm。mysql。Driver mapping为JAVABEAN所对应的映射。 下面我们继...全部
首先我们需要建立项目(开发工具采用MYECLIPS3。6),导入STRUTS+HIBERNATE包,然后配置SRC跟目录下的Hibernate。cfg。xml。 本文中的示例使用的是MySQL数据库,详细的配置如下:
root
jdbc:mysql://localhost:3306/tonnyblog
net。
sf。hibernate。dialect。MySQLDialect
org。gjt。mm。mysql。Driver mapping为JAVABEAN所对应的映射。
下面我们继续HIBERNATE程序的下步编写: import net。sf。hibernate。HibernateException; import net。sf。hibernate。
Session; import net。sf。hibernate。SessionFactory; import net。sf。hibernate。cfg。Configuration; /** * Description of the Class * * @author tonny * @created 2004年2月6日 */public class HibernateUtil { private final static SessionFactory sessionFactory; static { try { sessionFactory = new Configuration()。
configure()。buildSessionFactory(); } catch (HibernateException ex) { throw new RuntimeException( "Exception building SessionFactory: " + ex。
getMessage(),ex); } } private HibernateUtil(){ } /** * Description of the Field */ private final static ThreadLocal session = new ThreadLocal(); /** * Description of the Method * * @return Description of the Return Value * @exception HibernateException Description of the Exception */ public static Session currentSession() throws HibernateException { Session s = (Session) session。
get(); if (s == null) { s = sessionFactory。openSession(); session。set(s); } return s; } /** * Description of the Method * * @exception HibernateException Description of the Exception */ public static void closeSession() throws HibernateException { Session s = (Session) session。
get(); session。set(null); if (s != null) { s。close(); } } public static void init() { } } 创建sessionFactory import net。
sf。hibernate。HibernateException; import net。sf。hibernate。SessionFactory; import net。sf。hibernate。
cfg。Configuration; import org。apache。struts。action。ActionServlet; import org。apache。struts。action。
PlugIn; import org。apache。struts。config。ModuleConfig; import com。tonny。blog。dao。hibernate。HibernateUtil; public class HibernatePlugin implements org。
apache。struts。action。PlugIn { public void init(ActionServlet servlet, ModuleConfig config) { HibernateUtil。
init(); } public void destroy() { try { HibernateUtil。closeSession(); } catch(HibernateException hex) { hex。
printStackTrace(); } } } 以上为HIBERNATE基本配置,对数据库操作采用DAO模式,增加配置如下: import com。tonny。blog。dao。
hibernate。*; public class DAOFactory { private static DAOFactory instance; public synchronized static DAOFactory getInstance() { if (instance == null) { instance = new DAOFactory(); } return instance; } private DAOFactory() { } public ItemDAO getItemDAO() { return new ItemDAOHibernate(); } public ReviewDAO getReviewDAO() { return new ReviewDAOHibernate(); } public UserDAO getUserDAO() { return new UserDAOHibernate(); } } struts。
xml增加配置:
下面我们定义服务层: public class ServiceFactory { private static ServiceFactory instance; public synchronized static ServiceFactory getInstance() { if (instance == null) { instance = new ServiceFactory(); } return instance; } private ServiceFactory() { } public IService getService() { return new ServiceImp(); } } import com。
tonny。blog。struts。form。*; import com。tonny。blog。view。*; import com。tonny。blog。bean。*; import java。
util。*; import javax。servlet。http。*; public interface IService { public UserContainer login(UserForm userForm); public boolean logout(UserContainer userContainer); public boolean addBlog(BlogForm blogForm,String filePath); public boolean removeBlog(Long id); public boolean addReview(Long topicId,ReviewForm reviewForm); public boolean updateBlog(Long id,String conten,String topic); public boolean removeReview(Long id); public List getItems(); public ItemView getItem(Long id); public ItemView getEditItem(Long id); public List search(SearchForm searchForm); /** * @param id * @param userForm */ public boolean addUser(UserForm userForm); } import com。
tonny。blog。struts。form。*; import com。tonny。blog。view。*; import com。tonny。blog。dao。*; import com。
tonny。blog。bean。*; import java。util。*;import javax。servlet。http。*; import com。tonny。blog。struts。
util。FileUpload; public class ServiceImp implements IService { public UserContainer login(UserForm userForm) { UserDAO userDAO=DAOFactory。
getInstance()。getUserDAO(); User user=userDAO。loadUser(userForm。getName()); if(user==null)return new UserContainer("",false); if(!user。
getPassword()。equals(userForm。getPassword())) return new UserContainer("",false); return new UserContainer(userForm。
getName(),true); } public boolean logout(UserContainer userContainer) { userContainer。setLogin(false); userContainer。
setName(""); return true; } public boolean addBlog(BlogForm blogForm,String path) { ItemDAO itemDAO=DAOFactory。
getInstance()。getItemDAO(); Item item=new Item(blogForm。getTopic(), blogForm。getContent(), FileUpload。
upload(blogForm。getFile(),path),new Date()); itemDAO。addItem(item); return true; } public boolean removeBlog(Long id) { ReviewDAO reviewDAO=DAOFactory。
getInstance(。收起