实例讲解如何利用Hibernate开发Blog

逸冰4

逸冰4

2016-02-19 20:29

今天图老师小编给大家展示的是实例讲解如何利用Hibernate开发Blog,精心挑选的内容希望大家多多支持、多多分享,喜欢就赶紧get哦!
首先我们需要建立项目(开发工具采用MYECLIPS3.6),导入STRUTS+HIBERNATE包,然后配置SRC跟目录下的Hibernate.cfg.xml。本文中的示例使用的是MySQL数据库,详细的配置如下:

  hibernate-configuration  session-factory  !-- properties --  property name="connection.username"  root  /property  property name="connection.url"  jdbc:mysql://localhost:3306/tonnyblog  /property  property name="dialect"  net.sf.hibernate.dialect.MySQLDialect  /property  property name="connection.password"/property  property name="connection.driver_class"  org.gjt.mm.mysql.Driver  /property  !-- mapping files --  mapping resource="com/tonny/blog/bean/User.hbm.xml"/  mapping resource="com/tonny/blog/bean/Item.hbm.xml"/  mapping resource="com/tonny/blog/bean/Review.hbm.xml"/  /session-factory/hibernate-configuration    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增加配置:    controller contentType="text/html"  debug="3" locale="true"  nocache="true"  processorClass=  "com.tonny.blog.struts.controller.IndexRequestProcessor"/  message-resources parameter="com.tonny.resource"/  plug-in className=  "com.tonny.blog.struts.plugin.HibernatePlugin"/  plug-in className="org.apache.struts.tiles.TilesPlugin"  set-property property="moduleAware" value="true"/  set-property property="definitions-debug" value="0"/  set-property property="definitions-parser-details"  value="0"/  set-property property="definitions-parser-validate"  value="false"/  set-property property="definitions-config"  value="/WEB-INF/title-def.xml"/  /plug-in    下面我们定义服务层:    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(
展开更多 50%)
分享

猜你喜欢

实例讲解如何利用Hibernate开发Blog

编程语言 网络编程
实例讲解如何利用Hibernate开发Blog

利用开源项目Hibernate开发Blog系统

编程语言 网络编程
利用开源项目Hibernate开发Blog系统

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

J2ME游戏开发实例讲解

编程语言 网络编程
J2ME游戏开发实例讲解

J2ME游戏开发实例讲解04

编程语言 网络编程
J2ME游戏开发实例讲解04

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

J2ME游戏开发实例讲解02

编程语言 网络编程
J2ME游戏开发实例讲解02

PHP开发文件系统实例讲解

PHP
PHP开发文件系统实例讲解

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

win10安装realtek声卡驱动超时失败解决方法

win10安装realtek声卡驱动超时失败解决方法

关于Java编程语言中EJB最新技术的详细说明

关于Java编程语言中EJB最新技术的详细说明
下拉加载更多内容 ↓