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

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

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

    一,數(shù)據(jù)表(因?yàn)槭且粋€小例子,所以只有一個表,畢竟這不是一個講怎么配置hibernate級聯(lián)的例子。)
    CREATE TABLE `members` (
    `id` int(7) NOT NULL auto_increment,
    `name` varchar(20) NOT NULL default '',
    `password` varchar(20) default NULL,
    `sex` varchar(10) default NULL,
    `mail` varchar(50) default NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `name` (`name`)
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8
    二,hibernate持久化類及映射文件、數(shù)據(jù)庫操作封裝DAO
    package com.yang.product.booksonline.dao;

    /**
    * Members
    */

    public class Members implements java.io.Serializable {


    ? // Fields??

    ? private Integer id;
    ? private String name;
    ? private String password;
    ? private String sex;
    ? private String mail;


    ? // Constructors

    ? /** default constructor */
    ? public Members() {
    ? }

    ???? /** minimal constructor */
    ? public Members(String name) {
    ??? this.name = name;
    ? }
    ?
    ? /** full constructor */
    ? public Members(String name, String password, String sex, String mail) {
    ??? this.name = name;
    ??? this.password = password;
    ??? this.sex = sex;
    ??? this.mail = mail;
    ? }

    ?
    ? // Property accessors

    ? public Integer getId() {
    ??? return this.id;
    ? }
    ?
    ? public void setId(Integer id) {
    ??? this.id = id;
    ? }

    ? public String getName() {
    ??? return this.name;
    ? }
    ?
    ? public void setName(String name) {
    ??? this.name = name;
    ? }

    ? public String getPassword() {
    ??? return this.password;
    ? }
    ?
    ? public void setPassword(String password) {
    ??? this.password = password;
    ? }

    ? public String getSex() {
    ??? return this.sex;
    ? }
    ?
    ? public void setSex(String sex) {
    ??? this.sex = sex;
    ? }

    ? public String getMail() {
    ??? return this.mail;
    ? }
    ?
    ? public void setMail(String mail) {
    ??? this.mail = mail;
    ? }
    }

    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "<hibernate-mapping>
    ? <class name="com.yang.product.booksonline.dao.Members" table="members" catalog="books">
    ??? <id name="id" type="integer">
    ??????? <column name="id" />
    ??????? <generator class="native" />
    ??? </id>
    ??? <property name="name" type="string">
    ??????? <column name="name" length="20" not-null="true" unique="true" />
    ??? </property>
    ??? <property name="password" type="string">
    ??????? <column name="password" length="20" />
    ??? </property>
    ??? <property name="sex" type="string">
    ??????? <column name="sex" length="10" />
    ??? </property>
    ??? <property name="mail" type="string">
    ??????? <column name="mail" length="50" />
    ??? </property>
    ? </class>
    </hibernate-mapping>

    package com.yang.product.booksonline.dao;

    import java.util.List;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.hibernate.LockMode;
    import org.hibernate.criterion.Example;
    import org.springframework.context.ApplicationContext;
    import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

    /**
    * Data access object (DAO) for domain model class Members.
    * @see com.yang.product.booksonline.dao.Members
    * @author lanxincao
    */
    public class MembersDAO extends HibernateDaoSupport {

    ? private static final Log log = LogFactory.getLog(MembersDAO.class);

    ???? protected void initDao() {
    ?????????? //do nothing
    ???? }
    ?
    ? public void save(Members transientInstance) {
    ??? log.debug("saving Members instance");
    ??? try {
    ??????? getHibernateTemplate().saveOrUpdate(transientInstance);
    ??????? log.debug("save successful");
    ??? } catch (RuntimeException re) {
    ??????? log.error("save failed", re);
    ??????? throw re;
    ??? }
    ? }
    ?
    ???? public void delete(Members persistentInstance) {
    ??? log.debug("deleting Members instance");
    ??? try {
    ??????? getHibernateTemplate().delete(persistentInstance);
    ??????? log.debug("delete successful");
    ??? } catch (RuntimeException re) {
    ??????? log.error("delete failed", re);
    ??????? throw re;
    ??? }
    ? }
    ?
    ? public Members findById( java.lang.Integer id) {
    ??? log.debug("getting Members instance with id: " + id);
    ??? try {
    ??????? Members instance = (Members) getHibernateTemplate()
    ??????????? .get("com.yang.product.booksonline.dao.Members", id);
    ??????? return instance;
    ??? } catch (RuntimeException re) {
    ??????? log.error("get failed", re);
    ??????? throw re;
    ??? }
    ? }
    ?
    ?
    ? public List findByExample(Members instance) {
    ??? log.debug("finding Members instance by example");
    ??? try {
    ??????? List results = getSession()
    ??????????? .createCriteria("com.yang.product.booksonline.dao.Members")
    ??????????? .add(Example.create(instance))
    ??????? .list();
    ??????? log.debug("find by example successful, result size: " + results.size());
    ??????? return results;
    ??? } catch (RuntimeException re) {
    ??????? log.error("find by example failed", re);
    ??????? throw re;
    ??? }
    ? }??
    ?
    ? public Members merge(Members detachedInstance) {
    ??? log.debug("merging Members instance");
    ??? try {
    ??????? Members result = (Members) getHibernateTemplate()
    ??????????? .merge(detachedInstance);
    ??????? log.debug("merge successful");
    ??????? return result;
    ??? } catch (RuntimeException re) {
    ??????? log.error("merge failed", re);
    ??????? throw re;
    ??? }
    ? }

    ? public void attachDirty(Members instance) {
    ??? log.debug("attaching dirty Members instance");
    ??? try {
    ??????? getHibernateTemplate().saveOrUpdate(instance);
    ??????? log.debug("attach successful");
    ??? } catch (RuntimeException re) {
    ??????? log.error("attach failed", re);
    ??????? throw re;
    ??? }
    ? }
    ?
    ? public void attachClean(Members instance) {
    ??? log.debug("attaching clean Members instance");
    ??? try {
    ??????? getHibernateTemplate().lock(instance, LockMode.NONE);
    ??????? log.debug("attach successful");
    ??? } catch (RuntimeException re) {
    ??????? log.error("attach failed", re);
    ??????? throw re;
    ??? }
    ? }
    ?
    ? public List findByMembersName(String name){
    ?????? log.debug("finding by members' name.");
    ?????? try {
    ???????????? return getHibernateTemplate().find("from Members as members where members.name = ?"
    ???????????????????????? ,new String[]{name});
    ?????? } catch (RuntimeException re) {
    ???????????? log.error("finding by members' name failed",re);
    ???????????? throw re;
    ?????? }
    ? }

    ???? public static MembersDAO getFromApplicationContext(ApplicationContext ctx) {
    ?????? return (MembersDAO) ctx.getBean("MembersDAO");
    ???? }
    }

    三,spring配置
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "

    <beans>


    ???? <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    ?????????? <property name="driverClassName">
    ???????????????? <value>com.mysql.jdbc.Driver</value>
    ?????????? </property>
    ?????????? <property name="url">
    ???????????????? <value>jdbc:mysql://localhost:3306/books</value>
    ?????????? </property>
    ?????????? <property name="username">
    ???????????????? <value>root</value>
    ?????????? </property>
    ?????????? <property name="password">
    ???????????????? <value>snrdcqmq</value>
    ?????????? </property>
    ???? </bean>
    ???? <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    ?????????? <property name="dataSource">
    ???????????????? <ref bean="dataSource" />
    ?????????? </property>
    ?????????? <property name="hibernateProperties">
    ???????????????? <props>
    ?????????????????????? <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    ???????????????? </props>
    ?????????? </property>
    ?????????? <property name="mappingResources">
    ???????????????? <list>
    ?????????????????????? <value>com/yang/product/booksonline/dao/Members.hbm.xml</value>
    ???????????????? </list>
    ?????????? </property>
    ???? </bean>
    ???? <bean id="MembersDAO" class="com.yang.product.booksonline.dao.MembersDAO">
    ?????????? <property name="sessionFactory">
    ???????????????? <ref bean="sessionFactory" />
    ?????????? </property>
    ???? </bean>
    ????
    ???? <bean name="/members" class="com.yang.product.booksonline.action.MembersAction">
    ?????????? <property name="membersDAO">
    ???????????????? <ref bean="MembersDAO"/>
    ?????????? </property>
    ???? </bean>
    </beans>
    四,struts配置及action類
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "

    <struts-config>
    <data-sources />
    <form-beans >
    ? <form-bean name="membersForm" type="org.apache.struts.validator.DynaValidatorForm">
    ??? <form-property name="sex" type="java.lang.String" />
    ??? <form-property name="password" type="java.lang.String" />
    ??? <form-property name="mail" type="java.lang.String" />
    ??? <form-property name="name" type="java.lang.String" />
    ? </form-bean>

    </form-beans>

    <global-exceptions />
    <global-forwards />
    <action-mappings >
    ? <action
    ??? attribute="membersForm"
    ??? name="membersForm"
    ??? parameter="action"
    ??? path="/members"
    ??? scope="request"
    ??? type="org.springframework.web.struts.DelegatingActionProxy" >
    ??? <forward name="loginSuccess" path="/index.jsp" />
    ??? <forward name="registerSuccess" path="/index.jsp" />
    ??? <forward name="logoutSuccess" path="/index.jsp" />
    ? </action>


    </action-mappings>

    <message-resources parameter="com.yang.product.booksonline.ApplicationResources" />
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    ? <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
    ? <set-property property="stopOnFirstError" value="true" />
    </plug-in>
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
    ? <set-property property="contextConfigLocation" value="/WEB-INF/springContext.xml" />
    </plug-in>

    </struts-config>

    package com.yang.product.booksonline.action;

    import java.util.List;

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.DynaActionForm;
    import org.apache.struts.actions.DispatchAction;

    import com.yang.product.booksonline.dao.Members;
    import com.yang.product.booksonline.dao.MembersDAO;

    /**
    * XDoclet definition:
    * @struts.action path="/members" name="membersForm" parameter="action" scope="request" validate="true"
    */
    public class MembersAction extends DispatchAction {
    ???? private MembersDAO membersDAO;

    ???? public MembersDAO getMembersDAO() {
    ?????????? return membersDAO;
    ???? }

    ???? public void setMembersDAO(MembersDAO membersDAO) {
    ?????????? this.membersDAO = membersDAO;
    ???? }
    ????
    ???? public ActionForward login (ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {
    //??????????? String url = request.getParameter("url");
    ?????????? String name = (String)((DynaActionForm)form).get("name");
    ?????????? String password = (String)((DynaActionForm)form).get("password");
    ?????????? List members = membersDAO.findByMembersName(name);
    ?????????? if (members != null && members.size() >0) {
    ???????????????? Members member = (Members)members.get(0);
    ???????????????? if (password.equals(member.getPassword())) {
    ?????????????????????? request.getSession().setAttribute("member",name);
    ?????????????????????? //return new ActionForward(url);
    ?????????????????????? return mapping.findForward("loginSuccess");
    ???????????????? } else {
    ?????????????????????? return null;
    ???????????????? }
    ?????????? } else {
    ???????????????? return null;
    ?????????? }
    ???? }

    ???? public ActionForward logout (ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {
    ?????????? request.getSession().removeAttribute("member");
    ?????????? return mapping.findForward("logoutSuccess");
    ???? }

    ???? public ActionForward register (ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {
    ?????????? String name = (String)((DynaActionForm)form).get("name");
    ?????????? String password = (String)((DynaActionForm)form).get("password");
    ?????????? String sex = (String)((DynaActionForm)form).get("sex");
    ?????????? String mail = (String)((DynaActionForm)form).get("mail");
    ?????????? List members = membersDAO.findByMembersName(name);
    ?????????? if (members != null && members.size() >0) {
    ???????????????? return null;
    ?????????? } else {
    ???????????????? Members member = new Members();
    ???????????????? member.setName(name);
    ???????????????? member.setPassword(password);
    ???????????????? member.setSex(sex);
    ???????????????? member.setMail(mail);
    ???????????????? membersDAO.save(member);
    ???????????????? return mapping.findForward("registerSuccess");
    ?????????? }
    ???? }
    }

    注意到,這里使用了dispatchaction。
    五,三個jsp部分內(nèi)容
    index.jsp
    <body>
    <logic:notPresent name="member" scope="session">
    ???? Welcome,you have not <html:link href="login.jsp">login</html:link>. <br>
    </logic:notPresent>
    <logic:present name="member" scope="session">
    ???? Welcome,<bean:write name="member" scope="session"/>.<html:link href="members.do?action=logout">Logout</html:link>
    </logic:present>
    </body>
    login.jsp
    <body>
    ? If you haven't registered the system,please <html:link href="register.jsp">register</html:link>
    ? <html:form action="/members.do?action=login" method="post" focus="name">
    ??? <table border="0">
    ??? <tr>
    ????? <td><bean:message key="members.form.name.label"/>:</td>
    ????? <td><html:text property="name" /></td>
    ??? </tr>
    ??? <tr>
    ????? <td><bean:message key="members.form.password.label"/>:</td>
    ????? <td><html:password property="password" /></td>
    ??? </tr>
    ??? <tr>
    ????? <td colspan="2" align="center"><html:submit><bean:message key="members.form.login.label"/></html:submit></td>
    ??? </tr>
    ??? </table>
    ? </html:form>
    </body>
    register.jsp
    <body>
    ? Welcome to register the books online. <br>
    ? <html:form action="/members.do?action=register" method="POST">
    ? <bean:message key="members.form.name.label"/>:<html:text property="name"/><br>
    ? <bean:message key="members.form.password.label"/>:<html:password property="password"/><br>
    ? <bean:message key="members.form.sex.label"/>:
    ? <html:select property="sex">
    ?????? <html:option key="members.form.sex.male" value="male" />
    ?????? <html:option key="members.form.sex.female" value="female" />
    ? </html:select><br>
    ? <bean:message key="members.form.mail.label"/>:<html:text property="mail"/><br>
    ? <html:submit><bean:message key="members.form.register.label"/></html:submit>
    ? </html:form>
    </body>

    注意:在開發(fā)過程中,本想加上輸入驗(yàn)證的,因?yàn)榍懊婕航?jīng)有了這方面的例子,為了不重復(fù),這里就有意去掉了這部分,但要運(yùn)行這個例子,還是你自己加上validation.xml、validator-rules.xml兩個文件,不然會出錯。


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 无码国产精品一区二区免费式直播 | 成人免费视频试看120秒| 亚洲大尺度无码无码专区| 黄色网页在线免费观看| 久久久久亚洲精品天堂久久久久久 | 日韩免费观看一区| 亚洲A∨无码无在线观看| 成人网站免费大全日韩国产| 国产亚洲精品a在线观看| 国产精品内射视频免费| 亚洲乱码中文字幕久久孕妇黑人 | 久久久久亚洲AV无码专区首| 精品久久久久久无码免费| 亚洲欧洲自拍拍偷精品 美利坚| 亚洲精选在线观看| 久久午夜伦鲁片免费无码| 亚洲天堂一区二区三区| 黄页网站免费在线观看| 色窝窝亚洲av网| 亚洲日韩欧洲无码av夜夜摸| 久久久久久AV无码免费网站| 亚洲国产综合自在线另类| 免费人成视频在线| 人人爽人人爽人人片A免费| 亚洲无码黄色网址| 久久午夜夜伦鲁鲁片免费无码| 亚洲 国产 图片| AAAAA级少妇高潮大片免费看| 日本一道一区二区免费看| 国产精品亚洲一区二区三区在线观看 | 4444亚洲国产成人精品| 4虎永免费最新永久免费地址| 亚洲乱色熟女一区二区三区丝袜| 亚洲av无码专区在线电影天堂| 99视频有精品视频免费观看| 亚洲av成人一区二区三区| 国产在线观看免费完整版中文版| 久久精品国产亚洲av麻豆蜜芽| 久久久久久免费一区二区三区| 亚洲精品专区在线观看| 97青青草原国产免费观看|