all gone

          all gone

          #

          Eclipse下Hibernate入門


          1.開發環境
               Eclipse 3.2+MySQL 4.0.16+Hibernate3.0
              首先應該安裝好Eclipse和MySQL,此外準備好MySQL的JDBC Driver和Hibernate3.0,相關下載地址如下:
               Eclipse SDK:
                  http://www.eclipse.org/downloads/index.php 
                 MySQL及MySQL的JDBC Driver:
                     http://www.mysql.org
                 Hibernate:
                    http://www.hibernate.org
                 此外我還安裝了Eclipse的一個Hibernate插件:
               Hibernate synchronizer
                     http://hibernatesynch.sourceforge.net


                 Plugin Search:
                   http://eclipse-plugins.2y.net/eclipse/search.jsp 

                 Hibernate synchronizer插件的安裝和配置有問題請直接Google。

               在工程中其實只用到了Hibernate synchronizer插件的一部分功能,Hibernate依賴的相關jar包最好還是手動添加,因為最開始用Hibernate synchronizer添加時總是發生錯誤。
               將下載的Mysql driver和Hibernate包解壓縮,我們需要的只是里面相關的jar,在Eclipse中新建Mysql_Driver和Hibernate兩個user library,將mysql-connector-java-3.0.15-ga-bin.jar加入Mysql_Driver中,將hibernate3.jar,
          ,log4j-1.2.11.jar,antlr-2.7.5H3.jar,asm.jar,asm-attrs.jar,cglib-2.1.2.jar,commons-collections-2.1.1.jar,commons-logging-1.0.4.jar,dom4j-1.6.1.jar,ehcache-1.1.jar,jta.jar加入到Hibernate中。

          2.開始
          在Mysql中新建test數據庫(Mysql其實有個空的test數據庫),然后新建下面的Table

          create table user (
           id int(10) not null auto_increment primary key,
           name varchar(20) not null,
           password varchar(20) not null,
           email varchar(50),
           address varchar(100)
          )type=innodb;


          新建Java Project,將Mysql_Driver,Hibernate兩個user library添加到該工程的java build path中。

          新建與數據表對應的POJO類:User和Contact

          /**
           *
           * 
           */
          package com.user;

          /**
           * @author lzy
           *
           */
          public class User{
              private Integer id;
              private String name;
              private String password;
              private Contact contact;
             

           /**
            * @return Returns the id.
            */
           public Integer getId() {
            return id;
           }
           /**
            * @param id The id to set.
            */
           public void setId(Integer id) {
            this.id = id;
           }
           /**
            * @return Returns the name.
            */
           public String getName() {
            return name;
           }
           /**
            * @param name The name to set.
            */
           public void setName(String name) {
            this.name = name;
           }
           /**
            * @return Returns the password.
            */
           public String getPassword() {
            return password;
           }
           /**
            * @param password The password to set.
            */
           public void setPassword(String password) {
            this.password = password;
           }
           /**
            * @return Returns the contact.
            */
           public Contact getContact() {
            return contact;
           }
           /**
            * @param contact The contact to set.
            */
           public void setContact(Contact contact) {
            this.contact = contact;
           }
             
             
          }
          /**
           *
           */
          package com.user;

          /**
           * @author lzy
           *
           */
          public class Contact {
           private String email;
              private String address;

           /**
            * @return Returns the address.
            */
           public String getAddress() {
            return address;
           }
           /**
            * @param address The address to set.
            */
           public void setAddress(String address) {
            this.address = address;
           }
           /**
            * @return Returns the email.
            */
           public String getEmail() {
            return email;
           }
           /**
            * @param email The email to set.
            */
           public void setEmail(String email) {
            this.email = email;
           }
          }

          之后可以用synchronizer插件生成Hibernate配置文件和映射文件(相關過程可以參考http://www.ideagrace.com/html/doc/2005/08/01/00315.html),不過映射文件必須稍作修改。

          hibernate.cfg.xml
          <?xml version="1.0" encoding="utf-8"?>
          <!DOCTYPE hibernate-configuration
              PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
              "

          <hibernate-configuration>
              <session-factory >

            <!-- local connection properties -->
            <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property>
            <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="hibernate.connection.username"></property>
            <property name="hibernate.connection.password"></property>
            <!-- property name="hibernate.connection.pool_size"></property -->

            <!-- dialect for MySQL -->
                  <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

                  <property name="hibernate.show_sql">True</property>
                  <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
               <mapping resource="User.hbm.xml"/>


              </session-factory>
          </hibernate-configuration>

          User.hbm.xml

          <?xml version="1.0"?>
          <!DOCTYPE hibernate-mapping PUBLIC
           "-//Hibernate/Hibernate Mapping DTD//EN"
           "

          <hibernate-mapping package="com.user">
           <class
            name="User"
            table="user"
           >
            <id
             name="Id"
             type="integer"
             column="id"
            >
             <generator class="native"/>
            </id>

            <property
             name="Name"
             column="name"
             type="string"
             not-null="true"
             length="20"
            />
            <property
             name="Password"
             column="password"
             type="string"
             not-null="true"
             length="20"
            />
            <component name="Contact" class="Contact">
             <property
             name="Email"
             column="email"
             type="string"
             not-null="false"
             length="50"
            />
            <property
             name="Address"
             column="address"
             type="string"
             not-null="false"
             length="100"
            />
            </component>
            


           </class> 
          </hibernate-mapping>

           

          3.測試
          添加一個測試類:HibernateTest

          package com.user;

          import java.util.List;
          import java.util.ListIterator;

          import org.hibernate.*;
          import org.hibernate.cfg.*;

          public class HibernateTest {
              public static void main(String[] args) throws HibernateException {
                  SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
                 
                  //
                  //testInsert(sessionFactory);
                 
                  //
                  testQuery(sessionFactory);
                 
                   
                  sessionFactory.close();
                 
              }
              public static void testInsert( SessionFactory sessionFactory )throws HibernateException {
               
                Session session = sessionFactory.openSession();
                  Transaction tx= session.beginTransaction();
                  User user = new User();
                  Contact contact=new Contact();
                  contact.setEmail("email");
                  contact.setAddress("address");
                 
                  user.setName("caterpillar");
                  user.setPassword("password");
                  user.setContact(contact);
                 
                  session.save(user);
                  tx.commit();
                  session.close();
                  System.out.println("OK!");
             }
             
              public static void testQuery( SessionFactory sessionFactory )throws HibernateException {
               
               Session session = sessionFactory.openSession();
                  Transaction tx= session.beginTransaction();
                  User user = new User();
                  Contact contact=new Contact();
                           
                  Query query=session.createQuery("from User as user");
                  //query.setCharacter(1, 'M');
                  List names =query.list();
                  for(ListIterator it=names.listIterator();it.hasNext();){
                     user= (User)it.next();
                     System.out.println("Id: " + user.getId());
                      System.out.println("name: " + user.getName());
                      System.out.println("password: " + user.getPassword());
                      if(user.getContact()!=null){
                       
                       if(user.getContact().getEmail()!=null){
                        System.out.println("Email: " + user.getContact().getEmail());
                       }
                       if(user.getContact().getAddress()!=null){
                        System.out.println("Address: " + user.getContact().getAddress());
                         
                       }
                      }
                     
                     
                     
                  }
                   
                
                  tx.commit();
                  session.close();
               
              }
          }

           

            

           

          posted @ 2005-12-10 12:50 all gone 閱讀(5036) | 評論 (3)編輯 收藏

          Eclipse下JSF入門

          1.開發環境
             與Eclipse下Struts的開發類似,安裝好Eclipse和Tomcat之后,還需要兩個插件:tomcat 插件和JSF插件(如果相關插件還沒有安裝),以下是相關下載地址:
              Eclipse SDK:
                  http://www.eclipse.org/downloads/index.php 
              JSF:
               https://sourceforge.jp/projects/amateras/files/  
                FaceIDE+htmlEditor,htmlEditer也是必要的
              Tomcat :
                   http://www.sysdeo.com/eclipse/tomcatplugin 
              Plugin Search:
                   http://eclipse-plugins.2y.net/eclipse/search.jsp 
             插件的安裝和配置有問題請直接Google。
          2.開始
              入門嘛,我們就找一個最簡單的Login就可以了

              新建Tomcat project
              加入JSF支持

              新建一個ManagedBean:


          /**
           *
           */
          package com.jsf;




          /**
           * @author lzy
           *
           */
          public class UserBean {
          private String name;
              private String password;
          public String verify() {
               if(this.name.equals("name")&&this.password.equals("password"))
               
                  return "failure";

             else
                  return "success";
          }

           
          /**
          * @return Returns the name.
          */
          public String getName() {
          return name;
          }

          /**
          * @param name The name to set.
          */
          public void setName(String name) {
          this.name = name;
          }


          /**
          * @return Returns the password.
          */
          public String getPassword() {
          return password;
          }

          /**
          * @param password The password to set.
          */
          public void setPassword(String password) {
          this.password = password;
          }


          }

               新建兩個JSP頁面,login.jsp,welcom.jsp

          login.jsp
          <%@ page contentType="text/html; charset=GBK" %>
          <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
          <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

          <html>
          <head>
          <%@ page contentType="text/html; charset=GBK" %>
          <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
          <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

          <html>
          <head>
          <link href="main.css" rel="stylesheet"/>
          <title></title>

          </head>
          <body>
              <f:view>
              <f:loadBundle basename="com.jsf.MessageResources" var="msgs"></f:loadBundle>
             
                  <h:form>
                  <h:panelGrid columns="3" headerClass="header" rowClasses="evenRow,oddRow">
                  <f:facet name="header" >
                  <h:outputText value="#{msgs.header}"/>
                  </f:facet>
                 
                  <h:outputText value="#{msgs.namePromt}"></h:outputText>
                  <h:inputText id="name"  required="true" value="#{user.name}">
                  <f:validateLength minimum="2" maximum="10"></f:validateLength>
                  </h:inputText>
                  <h:message for="name" errorClass="errors"/>
                 
                 
                  <h:outputText value="#{msgs.passwordPromt}"></h:outputText>
                 
                  <h:inputSecret id="password" value="#{user.password}" required="true" redisplay="true">
                  <f:validateLength minimum="2"></f:validateLength>
                  </h:inputSecret>
                  <h:message for="password"/>
                 
                 
                        <f:facet name="footer" >
                  <h:outputText value="#{msgs.footer}"/>
                  </f:facet>
                  </h:panelGrid>          
                      <h:commandButton value="#{msgs.submitPromt}" action="#{user.verify}"/>
                      <h:commandButton value="#{msgs.resetPromt}" type="reset"/>
                  </h:form>
              </f:view>
          </body>
          </html>



          welcome.jsp


          <%@ page contentType="text/html; charset=GBK" %>
          <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
          <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
          <title></title>
          </head>
          <body>
              <f:view>
                  <h:outputText value="#{user.name}"/>  is a good boy!
                  <h3>welcome JavaServer Faces</h3>
              </f:view>
          </body>

          </html>
               編輯WEB-INF/lib下的faces-config.xml

          struts-config.xml

          <?xml version="1.0"?>
          <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
          <faces-config>
          <navigation-rule>
                  <from-view-id>/login.jsp</from-view-id>
                  <navigation-case>
                      <from-outcome>success</from-outcome>
                      <to-view-id>/welcome.jsp</to-view-id>
                  </navigation-case>
                  <navigation-case>
                      <from-outcome>failure</from-outcome>
                      <to-view-id>/login.jsp</to-view-id>
                  </navigation-case>
          </navigation-rule>


          <managed-bean>
          <managed-bean-name>user</managed-bean-name>
          <managed-bean-class>com.jsf.UserBean</managed-bean-class>
          <managed-bean-scope>session</managed-bean-scope>
          </managed-bean>
          </faces-config>


                 最后是資源文件

          # --login.jsp--
          header=Welcom
          namePromt=Name:
          passwordPromt=Password:
          amountPromt=Amount:
          datePromt=Date:
          submitPromt=Submit
          resetPromt=Reset
          footer=Thank you!


          3.測試
          在test工程中選擇tomcat project->Update context definition
          然后運行Tomcat
          http://127.0.0.1:8080/jsfTest/login.jsf

          posted @ 2005-12-10 12:05 all gone 閱讀(17656) | 評論 (11)編輯 收藏

          僅列出標題
          共17頁: First 上一頁 6 7 8 9 10 11 12 13 14 下一頁 Last 
          主站蜘蛛池模板: 柳州市| 丰镇市| 宣化县| 华池县| 临汾市| 合肥市| 六枝特区| 拜城县| 二连浩特市| 淮北市| 中宁县| 上林县| 凤城市| 东宁县| 青龙| 伊川县| 平湖市| 浪卡子县| 常宁市| 太白县| 博野县| 蓬莱市| 桑日县| 河北区| 辰溪县| 盈江县| 志丹县| 尼玛县| 塘沽区| 滦南县| 乌恰县| 家居| 河间市| 紫云| 奎屯市| 韶关市| 亳州市| 甘孜| 榆林市| 梁山县| 泊头市|