<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Topquan's Blog

    分享價值----成就你我----我的博客----你的家

    利用Hibernate開發(fā)Blog實例分析

    開發(fā)工具采用 MYECLIPS3.6 ,首先是建立項目,導入 STRUTS+HIBERNATE 包,然后配置 SRC 跟目錄下的 Hibernate.cfg.xml. 我采用的是 MYSQL數(shù)據(jù)庫 ,所以配置如下:
      
       <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 所對應的映射
      
      下面我們繼續(xù) 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  topquan
       
    * @created
    2006 5 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()
       {
       }
       }
      
      創(chuàng)建 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 基本配置,對 數(shù)據(jù)庫 操作采用 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()
            //...
           }

    posted on 2006-05-08 15:39 topquan 閱讀(294) 評論(0)  編輯  收藏 所屬分類: Hibernate

    主站蜘蛛池模板: 四虎永久在线精品免费观看地址| 男女污污污超污视频免费在线看| 最好免费观看高清在线| 一本久到久久亚洲综合| 精品国产日韩亚洲一区91| 麻豆国产人免费人成免费视频| 亚洲国产成人va在线观看网址| 69视频在线观看免费| 亚洲一区二区三区四区在线观看| 亚洲免费人成在线视频观看| 久久久久亚洲精品影视| 99热在线观看免费| 亚洲熟妇无码爱v在线观看| 日韩av无码久久精品免费| 亚洲视频精品在线| 麻豆一区二区免费播放网站| 亚洲国产精品网站久久| 一二三四在线播放免费观看中文版视频 | 午夜国产大片免费观看| 黄色网址大全免费| 亚洲综合熟女久久久30p| 国产成人精品免费久久久久| 亚洲精品91在线| 在线免费视频一区二区| 免费精品国产自产拍在线观看| 国产亚洲成人在线播放va| 久操视频免费观看| 亚洲一区二区三区在线网站| 国产成人啪精品视频免费网| 免费人成再在线观看网站 | 99久久免费观看| 亚洲欧美中文日韩视频| 亚洲视频一区二区| 91香蕉在线观看免费高清| 亚洲中文字幕久久久一区| 国产亚洲精品不卡在线| 日韩欧毛片免费视频| 一区视频免费观看| 亚洲午夜久久久久久尤物| 亚洲国产精品第一区二区三区| 96免费精品视频在线观看|