日期:2014-05-16 浏览次数:20445 次
导入必须的Jar包
?
JSF1.2的依赖包
${jsf_home}\mojarra-1.2_15-b01-FCS\lib
jsf-api.jar
jsf-impl.jar
额外
jstl.jar
?
JPA用Hibenrate3.6.0实现的依赖包
?
${hibernate_home}\hibernate-distribution-3.6.0.Final\hibernate3.jar
${hibernate_home}\hibernate-distribution-3.6.0.Final\lib\required\*
${hibernate_home}\hibernate-distribution-3.6.0.Final\lib\jpa\*
${hibernate_home}\hibernate-distribution-3.6.0.Final\lib\optional\c3p0\* (加入C3P0)
${hibernate_home}\hibernate-distribution-3.6.0.Final\lib\optional\ehcache\* (加入缓存)
slf4j-nop-1.6.1.jar(可选)
backport-util-concurrent.jar (缓存依赖包)
Spring3.1.0的依赖包
?
${spring_home}\spring-framework-3.1.0.RELEASE\dist\
org.springframework.aop-3.1.0.RELEASE.jar
org.springframework.asm-3.1.0.RELEASE.jar
org.springframework.aspects-3.1.0.RELEASE.jar
org.springframework.beans-3.1.0.RELEASE.jar
org.springframework.context-3.1.0.RELEASE.jar
org.springframework.core-3.1.0.RELEASE.jar
org.springframework.expression-3.1.0.RELEASE.jar
org.springframework.jdbc-3.1.0.RELEASE.jar
org.springframework.orm-3.1.0.RELEASE.jar
org.springframework.test-3.1.0.RELEASE.jar
org.springframework.transaction-3.1.0.RELEASE.jar
org.springframework.web-3.1.0.RELEASE.jar
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.junit-4.7.0.jar
com.springsource.org.aopalliance-1.0.0.jar
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
?
MySQL驱动
mysql-connector-java-5.1.7-bin.jar
?
因为开发很简单,就是CRUD...
所以能省略的就尽量省略了。。。
?
package org.monday.app.domain; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table(name = "user_table") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column(name = "name") private String name; @Column(name = "phone") private String phone; @Temporal(TemporalType.DATE) @Column(name = "birthday") private Date birthday; //...... }
??
3. Dao实现类
?
package org.monday.app.dao.impl; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; import org.monday.app.dao.UserDao; import org.monday.app.domain.User; import org.springframework.stereotype.Repository; @Repository(value = "userDao") public class UserDaoImpl implements UserDao { /** * Spring3.1推荐使用原生的EntityManager * 而JpaDaoSupport和JpaTemplate被标记为过时 */ @PersistenceContext(unitName = "jpa") private EntityManager entityManager; @Override public void save(User user) { entityManager.persist(user); } @Override public void update(User user) { entityManager.merge(user); } @Override public void delete(Integer id) { entityManager.remove(findById(id)); } @Override public User findById(Integer id) { return entityManager.find(User.class, id); } @SuppressWarnings("unchecked") @Override public List<User> findAll() { Query query = entityManager.createQuery("from User"); // 转换为HibernateQuery // if (query instanceof org.hibernate.ejb.QueryImpl) { // ((org.hibernate.ejb.QueryImpl) query).getHibernateQuery().setCacheable(true); // } return query.getResultList(); } }
?
?
?
3.Service实现类
?
就到对Dao的简单调用
?
?
现在,除了Web层组件,其他的组件都准比完毕。接下来,整合JPA+Spring
?
在“源文件”的目录下建立一个META-INF文件夹,里面建立一个persistence.xml文件。这个就不解释了。
?
<?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xm