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

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

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

    laoding
    本來我以為,隱身了別人就找不到我,沒有用的,像我這樣拉風的男人,無論走到哪里,都像在黑暗中的螢火蟲一樣,那樣的鮮明,那樣的出眾。我那憂郁的眼神,稀疏的胡茬,那微微隆起的將軍肚和親切的笑容......都深深吸引了眾人......
    posts - 0,  comments - 37,  trackbacks - 0
    這個是我抽空花了一上午做的,希望對大家有所幫助,廢話不多說,下面開始

    這里是用SSH+MYSQL做的

    首先在mysql建立表user 字段有3 id(int) username(varchar) password(varchar)其中id為主鍵

    新建web工程


    切換到數據庫透視圖,在空白區域右鍵并選擇
    new,如下圖(我這里是已經建立好了好幾個數據庫連接了)


    在第一個
    Driver template 里面選擇mysql的那個

    其他配置信息自己填寫

    有個ADD jars 選擇mysql的數據庫驅動包,點finish就可以了



    右鍵你剛剛配置好的連接,選擇
    open connection 可以打開連接,若未成功請根據錯誤仔細檢查配置。

    切換回j2ee透視圖

    右鍵你的工程,選擇MyEclipse->add Struts capabilities…如圖:


    Struts
    用的版本是1.1,在Base package for new classess:里輸入資源配置文件的路徑.然后點進擊Finish按鈕

    加入spring包,右鍵工程選擇MyEclipse->add Spring capabilities...如圖:


    Spring版本我用2.0,注意所選jar包里面還有最后一個看到不的spring 2.0 web Labraries要選擇中,在JAR Library Insatallation 里選擇Library存放的路徑,路徑選擇圖上的這個為佳,然后點擊Next


    上圖是
    Spring的配置文件存放徑。點擊Finish。之后會遇到有相同的library提示,選擇keep existing

    Hibernate相關的jar包等加載進來
    My
    Eclipse->add Hibernate capabilities...如圖:



    我用的是
    3.0 ,點擊Next



    上面所示為H
    ibernate用的是Spring 的配置文件,因和Spring結合在一起,所以不用Hibernate.cfg.xml,選擇第2applicationContext.xml,點擊Next



    SessionFactory ID取名:sessionFactory點擊Next



    Bean ID 輸入dataSource DB Driver 選擇你剛剛配置的,點擊next


    這里我們把勾勾掉,我們不需要創建這個,
    點擊Finish就可以了。

    web.xml文件里面把spring的配置文件加載進來, 要注意spring配置文件的放置路徑

      <context-param>
        
    <param-name>contextConfigLocation</param-name>
        
    <param-value>/WEB-INF/applicationContext.xml</param-value>
      
    </context-param>
      
    <servlet>
            
    <servlet-name>contextLoader</servlet-name>
            
    <servlet-class>
                org.springframework.web.context.ContextLoaderServlet
            
    </servlet-class>
            
    <load-on-startup>0</load-on-startup>
        
    </servlet>

    再把struts標簽加進來,這里要注意路徑了,在jsp頁面上使用的時候也要注意路徑

    <jsp-config>
            
    <taglib>
                
    <taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
                
    <taglib-location>
                    
    /WEB-INF/tld/struts-html.tld
                
    </taglib-location>
            
    </taglib>
            
    <taglib>
                
    <taglib-uri>/WEB-INF/tld/struts-bean.tld</taglib-uri>
                
    <taglib-location>
                    
    /WEB-INF/tld/struts-bean.tld
                
    </taglib-location>
            
    </taglib>
            
    <taglib>
                
    <taglib-uri>/WEB-INF/tld/struts-logic.tld</taglib-uri>
                
    <taglib-location>
                    
    /WEB-INF/tld/struts-logic.tld
                
    </taglib-location>
            
    </taglib>
            
    <taglib>
                
    <taglib-uri>/WEB-INF/tld/struts-nested.tld</taglib-uri>
                
    <taglib-location>
                    
    /WEB-INF/tld/struts-nested.tld
                
    </taglib-location>
            
    </taglib>

            
    <taglib>
                
    <taglib-uri>/WEB-INF/tld/struts-tiles.tld</taglib-uri>
                
    <taglib-location>
                    
    /WEB-INF/tld/struts-tiles.tld
                
    </taglib-location>
            
    </taglib>

        
    </jsp-config>




    在工程下建立一些包備用,如下圖:



    然后打開
    MyEclipse Database Explorer(數據庫透視圖),打開剛才連接的數據庫,用鼠標右擊user表,選擇Hibernate Reverse Engineering,打開一對話框如下:


    要注意最上面
    srcpackage的選擇,點擊next



    選擇
    increment即可,finish完成。


    找到剛生成的
    hbm.xmlcatalog刪除掉,否則會報錯(oracle數據庫不要刪除)




    找到
    struts的配置文件,選擇design視圖,右鍵選擇new —>formbean action and jsp:



    選擇
    NEXT



    我用的
    Superclass 是第2DispatchAction,個人比較喜歡它,最下面的Parameter輸入status(這個隨你數入什么,一會要對應到就行),點擊finish完成。

    接下來我們來寫dao借口,在dao包下新建interface,代碼如下:

    public interface IUserDao {
        
    boolean insert(User user);
    }

    dao包下的impl包下新建類實現這個接口



    注意這里要繼承
    HibernateDaoSupport和實現剛剛的接口。

     


    public class UserDaoImpl extends HibernateDaoSupport implements IUserDao {

        
    public boolean insert(User user) {
            
    boolean b = false;
            
    try{
                
    this.getHibernateTemplate().save(user);
                b
    = true;
            }
    catch(Exception e){
                e.printStackTrace();
            }

            
            
    return b;
        }


    }

     

    service包下創建接口IUserService,里面的方法和dao的一樣,復制過來

    public interface IUserService {
        
    boolean insert(User user);
    }

    service包下的impl建立類實現這個接口,并且將IUserDao接口作為它的一個屬性(要有settergetter方法),這里是通過配置文件將它注入進來,一會spring配置文件就會體現出來,代碼如下。

    public class UserServiceImpl implements IUserService {

        
    private IUserDao iuserdao;
        
        
    public boolean insert(User user) {
            
    // TODO Auto-generated method stub
            return iuserdao.insert(user);
        }
        
    public IUserDao getIuserdao() {
            
    return iuserdao;
        }
        
    public void setIuserdao(IUserDao iuserdao) {
            
    this.iuserdao = iuserdao;
        }

    }

    打開struts的配置文件,在 </action-mappings>下加入

     <controller

    processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

        </controller>

    并在action里面加入forward元素

    這個配置文件完成,如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

    <struts-config>
      
    <data-sources />
      
    <form-beans >
        
    <form-bean name="userForm" type="com.myssh.form.UserForm" />

      
    </form-beans>

      
    <global-exceptions />
      
    <global-forwards />
      
    <action-mappings >
        
    <action
          attribute
    ="userForm"
          name
    ="userForm"
          parameter
    ="status"
          path
    ="/user"
          scope
    ="request"
          type
    ="com.myssh.action.UserAction"
          validate
    ="false" >
          
    <forward name="success" path="/success.jsp"></forward>
          
    <forward name="fail" path="/fail.jsp"></forward>
          
    </action>

      
    </action-mappings>
      
      
    <controller
            processorClass
    ="org.springframework.web.struts.DelegatingRequestProcessor">
        
    </controller>
      
    <message-resources parameter="com.myssh.struts.ApplicationResources" />
    </struts-config>

    webroot下建立test.jsp success.jsp fail.jsp

    success.jspbody加入

        <h1>

                  struts+spring+hibernate練習

               </h1>

               <br />

               <h2>

                  恭喜,插入用戶成功!!!

               </h2>

    就可以,而fail.jsp 恭喜,插入用戶成功!!!”改成“對不起,插入失敗!!”。

    test.jsp的代碼:

    <%@ page language="java" pageEncoding="UTF-8"%>
    <%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html"%>
    <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %>

    <html>
        
    <head>
            
    <title>JSP for LoginForm form</title>
        
    </head>
        
    <body>
            
    <center>
                
    <br />
                
    <br />
                
    <h1>
                    struts
    +spring+hibernate練習
                
    </h1>
                
    <br />
                
    <h2>
                    測試插入
                
    </h2>
                
    <br />
                
    <html:form action="/user.do?status=insert">

                用戶名 : 
    <html:text property="username" />
                    
    <br /><br />
                密  碼 : 
    <html:password property="password" />
                    
    <br /><br />
                    
    <html:submit value="測試" />
                    
    <html:reset value="重置" />
                    
    <br />
                    
    <br />
                
    </html:form>
            
    </center>
        
    </body>
    </html>


    打開類UserForm加入2個屬性,并生成gettersetter方法

       

        private String username;

        private String password;

    打開UserAction類,將service接口做為它的一個屬性,并生成gettersetter方法。

    屬性是 private IUserService iuserservice;

    代碼如下:

    public class UserAction extends DispatchAction {
        
        
    private IUserService iuserservice;

        
    public ActionForward insert(ActionMapping mapping, ActionForm form,
                HttpServletRequest request, HttpServletResponse response) {
            UserForm userForm 
    = (UserForm) form;
            User user 
    = new User();
            user.setUsername(userForm.getUsername());
            user.setPassword(userForm.getPassword());
            
            
    boolean b = iuserservice.insert(user);
            
    if(b){
                
    return mapping.findForward("success");
            }
    else{
                
    return mapping.findForward("fail");
            }
            
        }

        
    public IUserService getIuserservice() {
            
    return iuserservice;
        }

        
    public void setIuserservice(IUserService iuserservice) {
            
    this.iuserservice = iuserservice;
        }
    }

    下面我們來配置spring

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns
    ="http://www.springframework.org/schema/beans"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">


        
    <bean id="dataSource"
            
    class="org.apache.commons.dbcp.BasicDataSource">
            
    <property name="driverClassName"
                value
    ="com.mysql.jdbc.Driver">
            
    </property>
            
    <property name="url" value="jdbc:mysql://localhost:3306/ding"></property>
            
    <property name="username" value="root"></property>
            
    <property name="password" value="ding"></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>
                    
    <prop key="hibernate.connection.autocommit">true</prop>
                    
    <prop key="hibernate.show_sql">true</prop>
                
    </props>
            
    </property>
            
    <property name="mappingResources">
                
    <list>
                    
    <value>com/myssh/po/User.hbm.xml</value>
                
    </list>
            
    </property>
        
    </bean>
        
        
    <bean id="transactionManager"
            
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
            
    <property name="sessionFactory">
                
    <ref local="sessionFactory" />
            
    </property>
        
    </bean>
        
        
    <bean name="/user" class="com.myssh.action.UserAction">
            
    <!--這里將iuserservice屬性注入進來了,在這就是UserAction類里面有這個屬性并且有getter和setter方法的原因-->
            
    <property name="iuserservice">
                
    <ref bean ="iuserservice"/>
            
    </property>
        
    </bean>
        
        
    <!--這里的class必須是實現類的路徑,而不是接口本身-->
        
    <bean id="iuserservice" class="com.myssh.service.impl.UserServiceImpl">
        
    <!--這里將iuserdao屬性注入進來了,在這就是UserService類里面有這個屬性并且有getter和setter方法的原因-->
            
    <property name="iuserdao">
                
    <ref bean="iuserdao"/>
            
    </property>
        
    </bean>
        
        
    <!--這里的class必須是實現類的路徑,而不是接口本身-->
        
    <bean id="iuserdao" class="com.myssh.dao.impl.UserDaoImpl">
            
    <!--這里將sessionFactory注入進來了-->
            
    <property name="sessionFactory">
                
    <ref bean="sessionFactory"/>
            
    </property>
        
    </bean>
        
        
    </beans>

    運行工程測試,注意有些錯誤是jar包引起的,所以要加入LOG4J 文件,方便看到錯誤好方便去網上找到答案。

    java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V

    這個錯誤是asm-2.23.jar導致的(刪除),lib下只需要一個asm.jar,多個會沖突

    我少了這個commons-pool.jar 包報創建sessionFactory出錯,加上去就好了

    在輸入框里面輸入 ding/123

    提示成功,一看數據庫也有數據了

    OK


    這里補充下:
    對于test.jsp的   <html: form action="/user.do?status=insert">
    要是普通的action就只要寫<html: form action="/user">就可以了

    我用的是DispathAction  所以要有個參數來標示,status對應于

    struts配置文件里面的parameter

    <action
          attribute="userForm"
          name="userForm"
          parameter="status"
          path="/user"
          scope="request"
          type="com.myssh.action.UserAction"
          validate="false" >
          <forward name="success" path="/success.jsp"></forward>
          <forward name="fail" path="/fail.jsp"></forward>
          </action><action
          attribute="userForm"
          name="userForm"
          parameter="status"
          path="/user"
          scope="request"
          type="com.myssh.action.UserAction"
          validate="false" >
          <forward name="success" path="/success.jsp"></forward>
          <forward name="fail" path="/fail.jsp"></forward>
          </action>



    而insert對于UserAction類里面的方法

    有什么問題請留言

    源碼下載地址:http://www.tkk7.com/Files/laoding/myssh.rar
    里面的jar包比較多,我把它們去掉了,自己加上去


    posted on 2008-09-05 15:18 老丁 閱讀(7905) 評論(3)  編輯  收藏 所屬分類: ssh

    FeedBack:
    # re: ssh+mysql簡單例子實現
    2009-06-11 12:18 | 不知名網友~
    感謝,正想找找在ACTION中調用service的方式,這文章很有參考價值  回復  更多評論
      
    # re: ssh+mysql簡單例子實現
    2010-09-18 21:20 | jinguizi
    拜讀了你的SSH+MYSQL的文章,覺得很不錯,很合適我們初學者。
    有一問題想咨詢:我配置完畢,訪問test.jsp文件,并提交表單時,出現了以下錯誤信息:
    exception

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1175)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:427)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:285)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)
    org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)
    org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)
    org.springframework.web.context.ContextLoaderServlet.init(ContextLoaderServlet.java:82)
    javax.servlet.GenericServlet.init(GenericServlet.java:212)
    org.apache.catalina.startup.Catalina.start(Catalina.java:552)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

    十分感謝。  回復  更多評論
      
    # re: ssh+mysql簡單例子實現
    2012-03-22 21:14 | neely
    樓主,add Spring capabilities這一步,沒有找到"spring2.0 ORM/DAO/Hibernate3 Libraries-<Myeclipse-Library>“ 這一勾選項  回復  更多評論
      

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


    網站導航:
     
    本博客主為學習和復習之用,無關其他,想罵人的繞道
    Email:dkm123456@126.com
    大家一起交流進步
    QQ:283582761


    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    留言簿(4)

    我參與的團隊

    文章分類(50)

    文章檔案(48)

    相冊

    朋友

    搜索

    •  

    積分與排名

    • 積分 - 96432
    • 排名 - 600

    最新評論

    主站蜘蛛池模板: 亚洲黄色片免费看| 亚洲成av人片不卡无码久久| 亚洲私人无码综合久久网| 国产伦一区二区三区免费 | 久久久久国色av免费看| 亚洲一区精彩视频| 亚洲无线观看国产精品| 国产成人免费爽爽爽视频| 99视频免费在线观看| 色偷偷女男人的天堂亚洲网| 中文字幕亚洲电影| 成年轻人网站色免费看| 成人片黄网站色大片免费观看APP| 久久精品国产亚洲AV久| 亚洲人成网站在线播放vr | 亚洲综合婷婷久久| 免费v片在线观看无遮挡| 18成禁人视频免费网站| 一区二区视频免费观看| 久久精品国产亚洲AV久| 亚洲国产精品久久久久久| av无码东京热亚洲男人的天堂| 67194成手机免费观看| 皇色在线免费视频| 精品国产亚洲第一区二区三区| 亚洲综合久久成人69| 亚洲色无码一区二区三区| 国产精品无码素人福利免费| 国产成人精品免费午夜app| 特级做A爰片毛片免费看无码 | 亚洲三级在线视频| 亚洲熟妇av一区二区三区漫画| 免费毛片网站在线观看| 永久免费的网站在线观看| 一区二区三区观看免费中文视频在线播放 | 亚洲a无码综合a国产av中文| 亚洲国产精品成人综合色在线婷婷| 亚洲五月综合缴情在线观看| 亚洲国产婷婷香蕉久久久久久| 四虎成人免费大片在线| 和日本免费不卡在线v|