aijava

          welcome to my online log ! open java new world! Taste java charm........
          posts - 1, comments - 4, trackbacks - 0, articles - 42
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          JB整合SSH

          Posted on 2006-11-05 21:29 閱讀(206) 評論(0)  編輯  收藏 所屬分類: Spring框架學習

          在網上經常看到用Eclipse整合SSH然后我就在學校用JB整合了一個SSH的例子演示出來,很有成就感! 呵呵
          打開JB建一個工程然后〉建站點〉建AcionForm , Acion , JSP這樣就把Struts框架搭建出來了!
          然后就是把Hibernate的Jar 和Spring 的Jar 導進工程當中建好的Struts框架如圖:
          然后開始編寫一個接口UserDAO.java
          package SpringPack;

          public interface UserDAO {
          ? public abstract boolean isValidUser(String name,String password);
          }

          編寫一個類繼承該接口UserDAOImp.java
          package SpringPack;

          import org.springframework.orm.hibernate.support.*;
          import net.sf.hibernate.SessionFactory;
          import java.util.List;
          import Hibernate.hibernateTest;
          import net.sf.hibernate.*;

          public class UserDAOImp extends HibernateDaoSupport implements UserDAO{

          ? public boolean isValidUser(String name,String pwd){
          ??? hibernateTest t = null;
          ??? try {
          ????? t = new hibernateTest();
          ??? }
          ??? catch (HibernateException ex) {
          ????? ex.printStackTrace();
          ??? }
          ??? if(t.checkUser(name,pwd)) return true;
          ??? return false;
          ? }
          }

          然后編寫一個Bean用來映射數據表的字段
          package Hibernate;

          public class user {
          ? private String username;
          ? private String password;
          ? public user() {
          ? }

          ? public void setUsername(String username) {
          ??? this.username = username;
          ? }

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

          ? public String getUsername() {
          ??? return username;
          ? }

          ? public String getPassword() {
          ??? return password;
          ? }
          }

          編寫hibernate.cfg.xml文件用于連接數據庫的配置文件:
          <?xml version='1.0' encoding='big5'?>
          <!DOCTYPE hibernate-configuration
          ??? PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
          ??? "
          http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd
          ">

          <hibernate-configuration>

          ??? <session-factory>


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

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

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

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

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

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


          ??????? <mapping resource="user.hbm.xml"/>

          ??? </session-factory>

          </hibernate-configuration>


          然后下面編寫一個描述數據庫映射表字段信息的mapping文件User.hbm.xml
          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping
          ??? PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
          ??? "
          http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd
          ">

          <hibernate-mapping>

          ??? <class name="Hibernate.user" table="user">

          ??????? <id name="username" type="string" unsaved-value="null">
          ??????????? <column name="username" sql-type="varchar(20)" />
          ??????????? <generator class="uuid.hex"/>
          ??????? </id>

          ??????? <property name="password" type="string" column="password"/>

          ??? </class>

          </hibernate-mapping>
          好了現在Hibernate已基本搭建出來了,下一步我們要用Spring來整合Hibernate 和Struts 操作步驟很簡單編寫一個applicationContext.xml文件放在站點的根目錄即可:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
          "
          http://www.springframework.org/dtd/spring-beans.dtd
          ">
          <beans>
          ? <bean name="/loginAction"
          ??? class="StrutsPack.LoginAction"
          ??? singleton="false">
          ? </bean>
          </beans>
          要整合Struts還要在Struts-config.xml文件中做一些修改如下:
          <?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>
          ? <form-beans>
          ??? <form-bean name="loginActionForm" type="StrutsPack.LoginActionForm" />
          ? </form-beans>
          ? <action-mappings>
          ??? <action? name="loginActionForm" path="/loginAction" scope="session" type="org.springframework.web.struts.DelegatingActionProxy" validate="false">
          ????? <forward name="Success" path="/success.jsp" />
          ????? <forward name="Failure" path="/Failure.jsp" />
          ??? </action>
          ? </action-mappings>
          ? <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
          ??? <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
          ? </plug-in>
          </struts-config>
          好了現在還要編寫一個Hibernate的輔助文件如下:
          package Hibernate;

          import net.sf.hibernate.*;
          import net.sf.hibernate.cfg.*;
          import java.util.List;
          import java.util.ListIterator;

          public class hibernateTest {
          ? Session session;
          ? public hibernateTest()
          ? throws HibernateException{
          ??? SessionFactory factory=new Configuration().configure().buildSessionFactory();
          ???? session=factory.openSession();


          ? }
          ? public boolean checkUser(String name,String pwd){
          ? List count = null;
          ? try {
          ??? Query q = session.createQuery(
          ??????? "select count(*) from user where username=? and password=?");
          ??? q.setString(1, name);
          ??? q.setString(2, pwd);
          ??? count = q.list();
          ? }
          ? catch (HibernateException ex) {
          ??? ex.printStackTrace();
          ? }
          ? ListIterator list=count.listIterator();
          ? Integer s=(Integer)list.next();
          ? if(s.intValue() > 0 ) return true;
          ? return false;
          ? }
          }

          然后就可以在LoginAction.java中調用了LoginAction.java文件如下:
          package StrutsPack;

          import org.apache.struts.action.ActionMapping;
          import org.apache.struts.action.ActionForm;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.Action;
          import SpringPack.*;

          public class LoginAction
          ??? extends Action {
          ? private static final String SUCCESS="Success";
          ? private static final String FAILURE="Failure";

          ? private UserDAO userdao=new UserDAOImp();

          ? public ActionForward execute(ActionMapping mapping,
          ?????????????????????????????? ActionForm actionForm,
          ?????????????????????????????? HttpServletRequest servletRequest,
          ?????????????????????????????? HttpServletResponse servletResponse) {
          ??? LoginActionForm loginform = (LoginActionForm) actionForm;

          ??? if(userdao.isValidUser(loginform.getUsername(),loginform.getPassword())){
          ??? return mapping.findForward(SUCCESS);
          ??? }
          ??? return mapping.findForward(FAILURE);
          ? }

          ? public UserDAO getUserDAO() {
          ??? return userdao;
          }
          public void setUserDAO(UserDAO userDAO) {
          ? this.userdao = userDAO;
          }

          }
          至此JB開發一個簡單的SSH就結束了感覺就是兩個字麻煩!還是使用Eclispe開發方便!下面是具體的path:

          http://freehost13.websamba.com
          主站蜘蛛池模板: 德清县| 江华| 图们市| 民权县| 静乐县| 阿拉尔市| 永安市| 聂荣县| 阿城市| 灌云县| 合江县| 射洪县| 济源市| 婺源县| 文登市| 肇源县| 稷山县| 嘉义市| 岑溪市| 桐乡市| 湟中县| 监利县| 黄浦区| 察隅县| 南安市| 阳泉市| 义马市| 行唐县| 郎溪县| 荥经县| 偏关县| 石台县| 台前县| 株洲县| 库尔勒市| 迁安市| 历史| 若羌县| 斗六市| 习水县| 唐河县|