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

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

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

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0

    HibernatePlugIn for Struts

    To configure Hibernate in a Jakarta-Struts application:

    1. Create your struts-config.xml file.

    2. Add the following configuration for the plugin:

    <plug-in className="edu.arbor.util.plugin.HibernatePlugIn">

    ? <!-- 'path-to-config-file' is relative to the root of the class

    ?????? path.? It MUST start with a '/'. The default is

    ?????? "/hibernate.cfg.xml" -->

    ? <set-property property="configFilePath" value="path-to-config-file" />

    ? <set-property property="storeInServletContext" value="true-or-false" />

    </plug-in>

    ?

    3. Copy the code into a source file and compile.

    package edu.arbor.util.plugin;

    ?

    import java.net.URL;

    import javax.servlet.ServletContext;

    import javax.servlet.ServletException;

    import net.sf.hibernate.SessionFactory;

    import net.sf.hibernate.cfg.Configuration;

    import org.apache.commons.logging.Log;

    import org.apache.commons.logging.LogFactory;

    import org.apache.struts.action.ActionServlet;

    import org.apache.struts.action.PlugIn;

    import org.apache.struts.config.ModuleConfig;

    ?

    /**

    ?* Implements the <code>PlugIn</code> interface to configure the Hibernate

    ?* data persistence library.? A configured

    ?* <code>net.sf.hibernate.SessionFactory</code> is stored in the

    ?* <code>ServletContext</code> of the web application unless the property

    ?* <code>storedInServletContext</code> is set to <code>false</code>.

    ?*

    ?* <plugin class="net.sf.hibernate.plugins.struts.HibernatePlugIn">

    ?*?? <set-property name="configFilePath"

    ?*?????????????? ??value="path-to-config-file"/>

    ?*?? <set-property name="storedInServletContext&quot"

    ?*??????????????? value="true-or-false"/>

    ?* </plugin>

    ?*

    ?* @author? <a href="mailto:bhandy@users.sf.net">Bradley M. Handy</a>

    ?* @version 1.0

    ?*/

    public class HibernatePlugIn implements PlugIn {

    ???

    ??? /**

    ???? * the key under which the <code>SessionFactory</code> instance is stored

    ???? * in the <code>ServletContext</code>.

    ???? */

    ??? public static final String SESSION_FACTORY_KEY

    ??????????? = SessionFactory.class.getName();

    ?

    ??? private static Log _log = LogFactory.getLog(HibernatePlugIn.class);

    ???

    ??? /**

    ???? * indicates whether the <code>SessionFactory</code> instance will be stored

    ???? * in the <code>ServletContext</code>, or not.

    ???? */

    ??? private boolean _storedInServletContext = true;

    ???

    ??? /**

    ???? * the path to the xml configuration file.? the path should start with a

    ???? * '/' character and be relative to the root of the class path.

    ???? * (DEFAULT:? "/hibernate.cfg.xml")

    ???? */

    ??? private String _configFilePath = "/hibernate.cfg.xml";

    ?

    ??? private ActionServlet _servlet = null;

    ??? private ModuleConfig _config = null;

    ??? private SessionFactory _factory = null;

    ?

    ??? /**

    ???? * Destroys the <code>SessionFactory</code> instance.

    ???? */

    ??? public void destroy() {

    ??????? _servlet = null;

    ??????? _config = null;

    ???????

    ??????? try {

    ??????????? _log.debug("Destroying SessionFactory...");

    ???????????

    ??????????? _factory.close();

    ???????????

    ??????????? _log.debug("SessionFactory destroyed...");

    ??????? } catch (Exception e) {

    ??????????? _log.error("Unable to destroy SessionFactory...(exception ignored)",

    ??????????????????? e);

    ??????? }

    ??? }

    ???

    ??? /**

    ???? * Initializes the <code>SessionFactory</code>.

    ???? * @param servlet the <code>ActionServlet</code> instance under which the

    ???? *??????? plugin will run.

    ???? * @param config the <code>ModuleConfig</code> for the module under which

    ???? *??????? the plugin will run.

    ???? */

    ??? public void init(ActionServlet servlet, ModuleConfig config)

    ??? throws ServletException {

    ??????? _servlet = servlet;

    ??????? _config = config;

    ???????

    ??????? initHibernate();

    ??? }

    ???

    ??? /**

    ???? * Initializes Hibernate with the config file found at

    ???? * <code>configFilePath</code>.

    ???? */

    ??? private void initHibernate() throws ServletException {

    ??????? Configuration configuration = null;

    ??????? URL configFileURL = null;

    ??????? ServletContext context = null;

    ???????

    ??????? try {

    ??????????? configFileURL = HibernatePlugIn.class.getResource(_configFilePath);

    ?

    ??????????? context = _servlet.getServletContext();

    ?

    ??????????? if (_log.isDebugEnabled()) {

    ??????????????? _log.debug("Initializing Hibernate from "

    ??????????????????????? + _configFilePath + "...");

    ??????????? }

    ???????????

    ??????????? configuration = (new Configuration()).configure(configFileURL);

    ??????????? _factory = configuration.buildSessionFactory();

    ???????????

    ??????????? if (_storedInServletContext) {

    ??????????????? _log.debug("Storing SessionFactory in ServletContext...");

    ??? ????????????

    ??????????????? context.setAttribute(SESSION_FACTORY_KEY, _factory);

    ??????????? }

    ??????????

    ??????? } catch (Throwable t) {

    ??????????? _log.error("Exception while initializing Hibernate.");

    ??????????? _log.error("Rethrowing exception...", t);

    ???????????

    ??????????? throw (new ServletException(t));

    ??????? }

    ??? }

    ???

    ??? /**

    ???? * Setter for property configFilePath.

    ???? * @param configFilePath New value of property configFilePath.

    ???? */

    ??? public void setConfigFilePath(String configFilePath) {

    ??????? if ((configFilePath == null) || (configFilePath.trim().length() == 0)) {

    ??????????? throw new IllegalArgumentException(

    ??????????????????? "configFilePath cannot be blank or null.");

    ??????? }

    ???????

    ??????? if (_log.isDebugEnabled()) {

    ??????????? _log.debug("Setting 'configFilePath' to '"

    ??????????????????? + configFilePath + "'...");

    ??????? }

    ???????

    ??????? _configFilePath = configFilePath;

    ??? }

    ???

    ??? /**

    ???? * Setter for property storedInServletContext.

    ???? * @param storedInServletContext New value of property storedInServletContext.

    ???? */

    ??? public void setStoredInServletContext(String storedInServletContext) {

    ??????? if ((storedInServletContext == null)

    ??????????????? || (storedInServletContext.trim().length() == 0)) {

    ??????????? storedInServletContext = "false";

    ??????? }

    ???????

    ??????? if (_log.isDebugEnabled()) {

    ??????????? _log.debug("Setting 'storedInServletContext' to '"

    ??????????????????? + storedInServletContext + "'...");

    ??????? }

    ???????

    ??????? _storedInServletContext

    ??????????????? = new Boolean(storedInServletContext).booleanValue();

    ??? }

    ???

    }

    ?

    ?

    A Usage example would be excellent!

    08 Sep 2003, 16:07

    themax

    A usage example would be excellent!

    ?

    Some more meat in the bones. Configruing hibernate with struts

    26 Nov 2003, 14:12

    mark.lowe

    <?xml version='1.0' encoding='utf-8'?>

    <!DOCTYPE hibernate-configuration PUBLIC

    ??????? "-//Hibernate/Hibernate Configuration DTD 2.0//EN"

    ????????????? "http://hibernate.sourceforge.net/hibernate-configuration

    -2.0.dtd">

    ?

    <hibernate-configuration>

    ?

    ??? <!-- a SessionFactory instance listed as /jndi/name -->

    ?? <session-factory name="foo:/hibernate/SessionFactory">

    ??????? <!-- properties -->

    ??????? <property

    name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>

    ??????? <property name="connection.username">brian</property>

    ??????? <property name="connection.password">arses</property>

    ??????? <property name="connection.url">jdbc:mysql://localhost:3306/

    mydata</property>

    ??????? <property

    name="connection.driver_class">com.mysql.jdbc.Driver</property>

    ??????? <property name="show_sql">true</property>

    ??????? <property name="use_outer_join">true</property>

    ??????? <property

    name="transaction.factory_class">net.sf.hibernate.transaction.JDBCTra

    nsactionFactory</property>

    ??????? <property name="dbcp.minIdle">1</property>

    ??????? <property name="cache.use_query_cache">true</property>

    ?????????????

    ??????? <!-- mapping files -->

    ??????? <mapping resource="com/sparrow/om/Arse.hbm.xml"/>

    ?

    ??? </session-factory>

    ?

    </hibernate-configuration>

    ?

    ?

    and in struts config..

    ?

    ?????? <plug-in className="edu.arbor.util.plugin.HibernatePlugIn">

    ????????????? <set-property property="storedInServletContext" value="true"/>

    ?????? </plug-in>

    ?

    ..

    in struts action

    ..

    Context ctx = new InitialContext();

    SessionFactory sf = (SessionFactory) ctx.lookup("foo:/hibernate/

    SessionFactory");

    hibSession = sf.openSession();

    ?

    Query query = hibSession.createQuery("from com.sparrow.om.Arse");

    Iterator it = query.iterate();

    ????????????????????

    while(it.hasNext()) {

    ????????????? Arse arse = (Arse) it.next();

    ????????????? arseList.add(arse);

    }

    ????????????????????

    request.setAttribute("arses", arseList.toArray());

    ?

    ..

    ?

    Tomcat notes

    23 Aug 2004, 18:03

    chrismaeda

    The previous example (where the SessionFactory is bound in the JNDI

    tree) doesn't work for Tomcat since Tomcat's JNDI is read-only.

    ?

    If you store the SessionFactory in the servlet context, you get it

    back with the following code:

    ?

    ?? (SessionFactory) servletContext.getAttribute

    (HibernatePlugIn.SESSION_FACTORY_KEY);

    ?

    If you are using JSP 1.2 or 2.0, you could also use this EL expression:

    ?

    ?? "${applicationScope['net.sf.hibernate.SessionFactory']}"

    ?

    This works for generic servlets as well.? Just execute the plugin code

    in the servlet's init() method.

    ?



    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://www.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2006-04-20 14:57 zhyiwww 閱讀(284) 評論(0)  編輯  收藏 所屬分類: j2ee
    主站蜘蛛池模板: 亚洲精品无码国产| 亚洲av午夜精品一区二区三区| 亚洲精品国产精品乱码不卡√| 一级毛片不卡免费看老司机| 亚洲看片无码在线视频| 1000部啪啪毛片免费看| 亚洲第一页在线观看| 色婷婷综合缴情综免费观看| 日日麻批免费40分钟日本的| 国产免费变态视频网址网站 | 四虎永久在线观看免费网站网址| 国产高清免费在线| 久久精品国产亚洲av影院| 污污视频免费观看网站| 免费无码毛片一区二区APP| 亚洲AV本道一区二区三区四区| 免费久久人人爽人人爽av| 国产美女a做受大片免费| 美女视频黄a视频全免费网站色 | 国产色爽免费无码视频| 亚洲精品无码成人AAA片| 免费女人高潮流视频在线观看| 亚洲日本国产精华液| 亚洲香蕉免费有线视频| 亚洲视频在线免费观看| 无人在线观看完整免费版视频 | 性做久久久久久久免费看| 亚洲第一成年网站视频| 免费精品99久久国产综合精品| 国产美女a做受大片免费| 亚洲精品视频免费| 亚洲高清在线mv| 青青草国产免费久久久91| 91丁香亚洲综合社区| 最近2019免费中文字幕6| 在线亚洲午夜片AV大片| 亚洲精品国产高清嫩草影院| 99在线视频免费| 美女免费视频一区二区三区| 久久精品国产亚洲av四虎| 成人黄18免费视频|