fuliangliang的Blog

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

fuliangliangID:fuliangliang
63445次访问,排名1609好友1人,关注者3
fuliangliang的文章
原创 100 篇
翻译 0 篇
转载 25 篇
评论 27 篇
fuliang的公告

我的联系方式:20542606

Email:fuliangliang@gmail.com


最近评论
marshluca:恭喜~~
请问有没rails 做的项目,比方blog?
marshluca@gmail.com
marshluca:恭喜~~
请问有没rails 做的项目,比方blog?
marshluca@gmail.com
chucai:写的非常的好,仔细的拜读了。思路很清晰。考虑的问题也比较全面。
tbsc3:我也遇到了这个问题,如果配1 M就有用,大于2M就还是默认的 不知道你有没有解决呀,教教我
zhoufeng345678:Thank u!
文章分类
收藏
    相册
    净月潭一日游
    页面图片
    日历
    文章收藏
    我的JavaEye博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 Ajax+Struts2+Spring+Hibernate整合收藏

    新一篇: JAXB+Socket的一个Bug(或者算一个Feature吧) | 旧一篇: Spring+hibernate+DWR整合

     我们沿用Spring+Hibernate+DWR的例子,做一个Ajax+Struts2.0+Spring+Hibernate整合,许多步骤大体相似,
    我就直接搬过来了:
    首先,建一个web project,然后添加对hibernate和spring的支持,我们使用的是hibernate3.2和spring2.0,然后导入xwork-2.0.3.jar struts2-core-2.0.8.jar struts2-spring-plugin-2.0.8.jar ognl-2.6.11.jar  freemarker-2.3.8.jar commons-logging-api-1.1.jar和commons-pool-1.3.jar(不知道myeclipse怎么搞的,添加Spring功能支持的时候就有了commons-dbcp.jar,居然没有其依赖的commons-pool-x.jar,只好单独添加了,另外,需要将Spring2.0 AOP Liberaries里的asm2.2.3.jar删除,因为好像和Hiberate中的生成代理用的asm.jar冲突,我把Spring2.0 AOP Liberaries排到最后仍然有冲突,所以只好删掉了,不知道大家遇到过这种情况么)。
    我们使用myeclise自带的Derby数据库,在里面建一个表BOOK:
    ID bigint primary key,autoincrement
    NAME varchar(20)
    ISBM varchar(20)
    AUTHOR varchar(15)
    然后利用myeclipse的hibernate反向工程生成领域模型:Book.java, DAO:BookDAO.jar, Book 的映射文件Book.hbm.xml:
    生成的代码及配置文件如下:

    Book.java:

    package edu.jlu.fuliang.domain;

    /**
     * Book generated by MyEclipse Persistence Tools
     
    */


    public class Book implements java.io.Serializable {

        
    // Fields

        
    private long id;
        
    private String name;
        
    private String isbm;
        
    private String author;

        
    // Constructors

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


        
    /** minimal constructor */
        
    public Book(String name, String isbm) {
            
    this.name = name;
            
    this.isbm = isbm;
        }


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


        
    // Property accessors

        
    public long getId() {
            
    return this.id;
        }


        
    public void setId(long 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;
        }


    }

    BookDAO.java:

    package edu.jlu.fuliang.dao;

    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;

    import edu.jlu.fuliang.domain.Book;

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


    public class BookDAO extends HibernateDaoSupport {
        
    private static final Log log = LogFactory.getLog(BookDAO.class);
        
    // property constants
        public static final String NAME = "name";
        
    public static final String ISBM = "isbm";
        
    public static final String AUTHOR = "author";

        
    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(Long id) {
            log.debug(
    "getting Book instance with id: " + id);
            
    try {
                Book instance 
    = (Book) getHibernateTemplate().get(
                        
    "edu.jlu.fuliang.domain.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 findByName(Object name) {
            
    return findByProperty(NAME, name);
        }


        
    public List findByIsbm(Object isbm) {
            
    return findByProperty(ISBM, isbm);
        }


        
    public List findByAuthor(Object author) {
            
    return findByProperty(AUTHOR, author);
        }


        
    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");
        }

    }

    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="edu.jlu.fuliang.domain.Book" table="BOOK" schema="CLASSICCARS">
            
    <id name="id" type="long">
                
    <column name="ID" />
                
    <generator class="identity"></generator>
            
    </id>
            
    <property name="name" type="string">
     &nb