<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产高潮久久免费观看| 无遮挡呻吟娇喘视频免费播放| 国产成人无码区免费内射一片色欲| 国产一级大片免费看| 亚洲av无码一区二区三区在线播放 | 无忧传媒视频免费观看入口| 日本xxwwxxww在线视频免费| 婷婷亚洲综合一区二区| 日韩亚洲国产二区| 一级毛片人与动免费观看| 国产成人精品久久亚洲| a级毛片毛片免费观看久潮喷| 国产aⅴ无码专区亚洲av| 亚洲免费在线视频观看| 亚洲一区二区三区在线观看蜜桃| 国语成本人片免费av无码 | 老司机精品视频免费| 亚洲福利精品一区二区三区| 一级看片免费视频| 亚洲国产精品国自产拍AV| 18禁止看的免费污网站| 亚洲精品456人成在线| 啊灬啊灬别停啊灬用力啊免费看| 免费国产黄网站在线观看动图| 亚洲一级特黄大片无码毛片| 久久免费国产视频| 亚洲日韩一中文字暮| 亚洲AV无码一区二三区 | 亚洲精华国产精华精华液好用 | 国产精品久久香蕉免费播放| 一级毛片大全免费播放下载| 亚洲av无码精品网站| 青春禁区视频在线观看直播免费 | 亚洲精品乱码久久久久久蜜桃图片| 国产男女猛烈无遮挡免费视频网站| 一级毛片免费播放视频| 亚洲精品视频久久| 四虎免费永久在线播放| 久久久久久国产精品免费免费男同| 亚洲国产综合AV在线观看| 亚洲香蕉网久久综合影视|