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

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

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

    176142998

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks
    一:
    myeclipse 傻瓜式的完成spring和hibernate的載入;
    注意需要把lib里面的asm-XXcommons-collections-XX 低版本的刪除掉,因為載入spring和hibernate的時候會裝在2個不一樣的版本,包沖突.
    記得把dwr的包放進去
    數據庫用mysql.
    CREATE TABLE `book` (
      `id` int(11) NOT NULL auto_increment,
      `name` varchar(11) default NULL,
      `isbm` varchar(11) default NULL,
      `author` varchar(11) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=gbk;
    id為自動增長
    二:
    完成上步后用hibernate的反向機制,完成數據庫表的映射
    如下:
    AbstractBook.java

    package com;

    /**
     * AbstractBook generated by MyEclipse Persistence Tools
     */

    public abstract class AbstractBook implements java.io.Serializable {

     // Fields

     private Integer id;
     private String name;
     private String isbm;
     private String author;

     // Constructors

     /** default constructor */
     public AbstractBook() {
     }

     /** full constructor */
     public AbstractBook(String name, String isbm, String author) {
      this.name = name;
      this.isbm = isbm;
      this.author = author;
     }

     // 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 getIsbm() {
      return this.isbm;
     }

     public void setIsbm(String isbm) {
      this.isbm = isbm;
     }

     public String getAuthor() {
      return this.author;
     }

     public void setAuthor(String author) {
      this.author = author;
     }

    }


    Book.java

    package com;

    // Generated by MyEclipse Persistence Tools

    /**
     * Book generated by MyEclipse Persistence Tools
     */
    public class Book extends AbstractBook implements java.io.Serializable {

     // Constructors

     /** default constructor */
     public Book() {
     }

     /** full constructor */
     public Book(String name, String isbm, String author) {
      super(name, isbm, author);
     }

    }


    BookDAO.java

    package com;

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

    /**
     * Data access object (DAO) for domain model class Book.
     *
     * @see com.Book
     * @author MyEclipse Persistence Tools
     */

    public class BookDAO extends HibernateDaoSupport {
     private static final Log log = LogFactory.getLog(BookDAO.class);

     protected void initDao() {
      // do nothing
     }

     public void save(Book transientInstance) {
      log.debug("saving Book instance");
      try {
       getHibernateTemplate().save(transientInstance);
       log.debug("save successful");
      } catch (RuntimeException re) {
       log.error("save failed", re);
       throw re;
      }
     }

     public void delete(Book persistentInstance) {
      log.debug("deleting Book instance");
      try {
       getHibernateTemplate().delete(persistentInstance);
       log.debug("delete successful");
      } catch (RuntimeException re) {
       log.error("delete failed", re);
       throw re;
      }
     }

     public Book findById(java.lang.Integer id) {
      log.debug("getting Book instance with id: " + id);
      try {
       Book instance = (Book) getHibernateTemplate().get("com.Book", id);
       return instance;
      } catch (RuntimeException re) {
       log.error("get failed", re);
       throw re;
      }
     }

     public List findByExample(Book instance) {
      log.debug("finding Book instance by example");
      try {
       List results = getHibernateTemplate().findByExample(instance);
       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 List findByProperty(String propertyName, Object value) {
      log.debug("finding Book instance with property: " + propertyName
        + ", value: " + value);
      try {
       String queryString = "from Book as model where model."
         + propertyName + "= ?";
       return getHibernateTemplate().find(queryString, value);
      } catch (RuntimeException re) {
       log.error("find by property name failed", re);
       throw re;
      }
     }

     public List findAll() {
      log.debug("finding all Book instances");
      try {
       String queryString = "from Book";
       return getHibernateTemplate().find(queryString);
      } catch (RuntimeException re) {
       log.error("find all failed", re);
       throw re;
      }
     }

     public Book merge(Book detachedInstance) {
      log.debug("merging Book instance");
      try {
       Book result = (Book) getHibernateTemplate().merge(detachedInstance);
       log.debug("merge successful");
       return result;
      } catch (RuntimeException re) {
       log.error("merge failed", re);
       throw re;
      }
     }

     public void attachDirty(Book instance) {
      log.debug("attaching dirty Book instance");
      try {
       getHibernateTemplate().saveOrUpdate(instance);
       log.debug("attach successful");
      } catch (RuntimeException re) {
       log.error("attach failed", re);
       throw re;
      }
     }

     public void attachClean(Book instance) {
      log.debug("attaching clean Book instance");
      try {
       getHibernateTemplate().lock(instance, LockMode.NONE);
       log.debug("attach successful");
      } catch (RuntimeException re) {
       log.error("attach failed", re);
       throw re;
      }
     }

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


    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/applicationContext.xml</param-value>
     </context-param>
     <listener>
      <listener-class>
       org.springframework.web.context.ContextLoaderListener
      </listener-class>
     </listener>
     <servlet>
      <servlet-name>dwr-invoker</servlet-name>
      <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
      <init-param>
       <param-name>debug</param-name>
       <param-value>true</param-value>
      </init-param>
     </servlet>

     <servlet-mapping>
      <servlet-name>dwr-invoker</servlet-name>
      <url-pattern>/dwr/*</url-pattern>
     </servlet-mapping>
     <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>
    </web-app>

     



    Book.hbm.xml

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!--
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping>
        <class name="com.Book" table="book" catalog="test">
            <id name="id" type="java.lang.Integer">
                <column name="id" />
                <generator class="native" />
            </id>
            <property name="name" type="java.lang.String">
                <column name="name" length="11" />
            </property>
            <property name="isbm" type="java.lang.String">
                <column name="isbm" length="11" />
            </property>
            <property name="author" type="java.lang.String">
                <column name="author" length="11" />
            </property>
        </class>
    </hibernate-mapping>

    BookManageService.java 暴露給dwr使用的接口

    package com;

    import java.util.List;

    public interface BookManageService {

     public List<Book> getAllBooks();

     public List<Book> getBookByName(String name);

     public void updateBook(Book book);

     public void addBook(Book book);

     public void deleteBook(Integer id);
    }


    BookManageServiceImpl.java 接口的實現類

    package com;

    import java.util.List;

    public class BookManageServiceImpl implements BookManageService {

     private BookDAO bookDAO;

     public BookDAO getBookDAO() {
      return bookDAO;
     }

     public void setBookDAO(BookDAO bookDAO) {
      this.bookDAO = bookDAO;
     }
     public void addBook(Book book) {
      System.out.println("impl:"+book);
      bookDAO.save(book);
     }

     public void deleteBook(Integer id) {
      Book book = bookDAO.findById(id);
      bookDAO.delete(book);
     }


     @SuppressWarnings("unchecked")
     public List<Book> getAllBooks() {

      return bookDAO.findAll();
     }


     @SuppressWarnings("unchecked")
     public List<Book> getBookByName(String name) {

      return bookDAO.findByProperty(name, name);
     }

     public void updateBook(Book book) {
      bookDAO.attachDirty(book);
     }


    }



    applicationContext.xml
    <?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://127.0.0.1:3306/test"></property>
      <property name="username" value="root"></property>
      <property name="password" value="root"></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.show_sql">true</prop>
       </props>
      </property>
      <property name="mappingResources">
       <list>
        <value>com/Book.hbm.xml</value>
       </list>
      </property>
     </bean>
    <bean id="BookDAO" class="com.BookDAO">
      <property name="sessionFactory">
       <ref bean="sessionFactory" />
      </property>
     </bean>
    <bean id="bookManageServiceTarget"
      class="com.BookManageServiceImpl">
      <property name="bookDAO">
       <ref bean="BookDAO" />
      </property>
     </bean>
     <bean id="transactionManager"
      class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory">
       <ref bean="sessionFactory" />
      </property>
     </bean>
     <bean id="bookManageService"
      class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
      <property name="transactionManager" ref="transactionManager" />
      <property name="target" ref="bookManageServiceTarget" />
      <property name="transactionAttributes">
       <props>
        <prop key="add*">PROPAGATION_REQUIRED</prop>
        <prop key="delete*">PROPAGATION_REQUIRED</prop>
        <prop key="update*">PROPAGATION_REQUIRED</prop>
        <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
       </props>
      </property>
     </bean>
    </beans>

    dwr.xml

    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr//dwr20.dtd">
    <dwr>
     <allow>
      <convert converter="bean" match="com.Book" />
      <create creator="spring" javascript="BookManageService">
       <param name="beanName" value="bookManageService" />
       <include method="getAllBooks" />
       <include method="getBookByName" />
       <include method="updateBook" />
       <include method="addBook" />
       <include method="deleteBook" />
      </create>
     </allow>
    </dwr>

    index.jsp


    <html>
     <head>
      <title>DWR test</title>
      <script type='text/javascript' src='/shdwr/dwr/interface/BookManageService.js'></script>
      <script type='text/javascript' src='/shdwr/dwr/engine.js'></script>
      <script type='text/javascript' src='/shdwr/dwr/util.js'></script>

      <script type="text/javascript">
            var bookCache ={};
            var currentBook = null;
           
            function loadAllBooks(){
                BookManageService.getAllBooks(handleGetAllBooks,handleGetAllBooksError);
            }
            function handleGetAllBooks(books){
                dwr.util.removeAllRows("booksBody",{ filter:function(tr){
           return (tr.id != "pattern");
           }});
     
                var book,id;
                for(var i = 0; i < books.length; i++){
                    book = books[i];
                  
                    id = book.id;
              
                    dwr.util.cloneNode("pattern", { idSuffix:id });
                    dwr.util.setValue("t_name" + id, book.name);
                    dwr.util.setValue("t_isbm" + id, book.isbm);
                    dwr.util.setValue("t_author" + id,book.author);
                   $("pattern" + id).style.display = "block";
                   bookCache[id] = book;
                }
            }
            function handleGetAllBooksError(msg){
                alert("Error: " + msg);
            }
           
            function addBook(){
                var book ={name:null,isbm:null,author:null};
                dwr.util.getValues(book);
                dwr.engine.beginBatch();
                     BookManageService.addBook(book);
                     loadAllBooks();
                  dwr.engine.endBatch();
            }
           
            function editBook(btId){
                currentBook = bookCache[btId.substring(4)];
                dwr.util.setValues(currentBook);
            }
           
            function updateBook(){
                var book = {id:null,name:null,isbm:null,author:null};
                dwr.util.getValues(book);
                book.id = currentBook.id;
                BookManageService.updateBook(book,handleUpdateBook,handleUpdateBookError);
            }
           
            function handleUpdateBook(){
                alert("Update book successfully!");
                loadAllBooks();
            }
           
            function handleUpdateBookError(msg){
                alert("Error: " + msg);
            }
           
            function deleteBook(btId){
                var i = confirm("Are you sure to delete the book?");
                if(i == true)
                    BookManageService.deleteBook(btId.substring(6),handleDeleteBook,handleDeleteBookError);
            }
           
            function handleDeleteBook(){
              alert("The book has been delete successfully!");
              loadAllBooks();
            }
           
            function handleDeleteBookError(msg){
              alert("Error: " + msg);
            }
            function reset(){
               dwr.util.setValue("name", "");
               dwr.util.setValue("isbm", "");
               dwr.util.setValue("author", "");
            }
        </script>
     </head>


     <body onload="loadAllBooks()">
      <div>
       <h2>
        Add book
       </h2>
       <table>
        <tr>
         <td>
          Name:
         </td>
         <td>
          <input type="text" id="name">
         </td>
        </tr>
        <tr>
         <td>
          ISBN:
         </td>
         <td>
          <input type="text" id="isbm">
         </td>
        </tr>

        <tr>
         <td>
          Author:
         </td>
         <td>
          <input type="text" id="author">
         </td>
        </tr>
        <tr>
         <td colspan="2">
          <input type="button" id="add" value="Add" onclick="addBook()">
          <input type="reset"  id="reset" value="reset" onclick="reset()">
          <input type="button" id="update" value="Update"
           onclick="updateBook()">
         </td>
        </tr>
       </table>
      </div>
      <hr>
      <div id="list">
       <table border="1">
        <thead>
         <tr>
          <th>
           Name
          </th>
          <th>
           ISBN
          </th>
          <th>
           Author
          </th>
          <th>
           Action
          </th>
         </tr>
        </thead>
        <tbody id="booksBody">
         <tr id="pattern" style="display: none;">
          <td>
           <span id="t_name"></span>
          </td>
          <td>
           <span id="t_isbm"></span>
          </td>
          <td>
           <span id="t_author"></span>
          </td>
          <td>
           <span id="action"> <input id="edit" type="button"
             value="Edit" onclick="editBook(this.id)" /> <input id="delete"
             type="button" value="Delete" onclick="deleteBook(this.id)" />
           </span>
          </td>
         </tr>
        </tbody>
       </table>
      </div>
     </body>


    posted on 2008-08-13 19:55 飛飛 閱讀(657) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 成在线人视频免费视频| 香蕉国产在线观看免费| 亚欧免费无码aⅴ在线观看| 亚洲欧洲国产成人综合在线观看| 亚洲综合av一区二区三区不卡| 野花高清在线观看免费完整版中文| 91精品国产亚洲爽啪在线观看| 色欲A∨无码蜜臀AV免费播 | 亚洲中文久久精品无码| 一本一道dvd在线观看免费视频| www.亚洲一区| 免费无码黄网站在线看| 亚洲av伊人久久综合密臀性色 | 亚洲丰满熟女一区二区哦| 永久免费无码网站在线观看| 美女啪啪网站又黄又免费| 亚洲欧洲久久久精品| 抽搐一进一出gif免费视频| 亚洲AV无码一区二区二三区入口 | 免费观看激色视频网站bd| 亚洲av产在线精品亚洲第一站 | 亚洲精品动漫免费二区| 国产精品亚洲综合| 亚洲综合伊人久久大杳蕉| 免费人妻无码不卡中文字幕系| 亚洲一区二区三区在线观看蜜桃| 成人黄18免费视频| 一个人晚上在线观看的免费视频 | 亚洲人成网站18禁止| 亚洲男人的天堂一区二区| 东方aⅴ免费观看久久av| 亚洲免费黄色网址| 亚洲国产精品成人一区| 午夜不卡久久精品无码免费| 中文字幕亚洲综合小综合在线| 亚洲AV无码之日韩精品| 久久免费的精品国产V∧| 337P日本欧洲亚洲大胆艺术图 | 国产AV无码专区亚洲AVJULIA| www.黄色免费网站| 国产一区二区三区免费观在线|