谈谈对Struts多模块的认识
时间:2011-03-14
首先,建一个web project,然后添加对hibernate和spring的支持,我们使用的是hibernate3.1和spring2.0,然后导入dwr.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(Long id, String name, String isbm) {
this.id = id;
this.name = name;
this.isbm = isbm;
}
/** *//** full constructor */
public Book(Long id, String name, String isbm, String author) {
this.id = id;
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;
}
public String toString(){
return "[id=" + id + ",name=" + name + ",isbm=" + isbm + ",author=" + author + "]";
}
}
edu.jlu.fuliang.dao.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);
lo
|