原帖:http://www.blogjava.net/javaroom/archive/2008/08/27/225037.html
我这次和大家交流的是spring2.5.5+struts2.0.11.2+jpa+hibernate3.3。在做这个项目之前,我看了很多网上的例子,但是没有一个能运行成功的,有的是本身的配置和代码有问题,有的则是缺包,我会尽量详细一些,让大家有一个清楚的认识。
首选下载开发包,具体网址和步骤省略,网上遍地都是。
第一步:建工程,结构图如下:
我这次和大家交流的是spring2.5.5+struts2.0.11.2+jpa+hibernate3.3。在做这个项目之前,我看了很多网上的例子,但是没有一个能运行成功的,有的是本身的配置和代码有问题,有的则是缺包,我会尽量详细一些,让大家有一个清楚的认识。
首选下载开发包,具体网址和步骤省略,网上遍地都是。
第一步:建工程,结构图如下:
读者朋友可以一目了然,需要什么包,文件的路径如何摆放就不用我长篇大论地赘述了。
读者朋友可以一目了然,需要什么包,文件的路径如何摆放就不用我长篇大论地赘述了。
第二步:将要用到的包导入到WEB-INF/lib目录下并加到项目中。
第三步:建表,我用的是mysql,因为占用的资源比较小,建立一个数据库:struts,再在其中建一张表:user,有三个字段:姓名,性别,年龄。
下面是各个文件的代码,边粘边说吧:
UserDAO.java:数据访问的接口
2
3 import java.util.List;
4
5 import com.jpa.po.User;
6
7 /** */ /**
8 * @author javaroom
9 *
10 */
11 public interface UserDAO {
12
13 public List<User> queryAll();
14
15}
16
UserDAOImpl.java:数据访问的实现类
2
3 import java.util.List;
4
5 import javax.persistence.EntityManager;
6 import javax.persistence.PersistenceException;
7
8 import org.springframework.orm.jpa.JpaCallback;
9 import org.springframework.orm.jpa.support.JpaDaoSupport;
10
11 import com.jpa.dao.UserDAO;
12 import com.jpa.po.User;
13
14 /** */ /**
15 * @author javaroom
16 *
17 */
18 public class UserDAOImpl extends JpaDaoSupport implements UserDAO {
19
20 /**//*
21 * (non-Javadoc)
22 *
23 * @see com.jpa.dao.UserDAO#queryAll()
24 */
25 @SuppressWarnings("unchecked")
26 @Override
27 public List<User> queryAll() {
28 // TODO Auto-generated method stub
29 return (List<User>) this.getJpaTemplate().execute(new JpaCallback() {
30 public Object doInJpa(EntityManager em) throws PersistenceException {
31 return em.createQuery(
32 "FROM User")
33 .getResultList();
34 }
35 });
36 }
37
38}
39
UserService.java:服务的接口
2
3 import java.util.List;
4
5 import com.jpa.po.User;
6
7 /** */ /**
8 * @author javaroom
9 *
10 */
11 public interface UserService {
12
13 public List<User> queryAll();
14
15}
UserServiceImpl.java:服务的实现类
2
3 import java.util.List;
4
5 import com.jpa.dao.UserDAO;
6 import com.jpa.po.User;
7 import com.spring.service.UserService;
8
9 /** */ /**
10 * @author javaroom
11 *
12 */
13 public class UserServiceImpl implements UserService {
14
15 private UserDAO userDAO;
16
17 public void setUserDAO(UserDAO userDAO) {
18 this.userDAO = userDAO;
19 }
20
21 /**//*
22 * (non-Javadoc)
23 *
24 * @see com.spring.service.UserService#queryAll()
25 */
26 @Override
27 public List<User> queryAll() {
28
29 return userDAO.queryAll();
30 }
31
32}
33
UserAction.java:Struts的action类
2
3 import java.util.List;
4
5 import com.jpa.po.User;
6 import com.opensymphony.xwork2.ActionSupport;
7 import com.spring.service.UserService;
8
9 /** */ /**
10 * @author javaroom
11 *
12 */
13 public class UserAction extends ActionSupport {
14
15 private static final long serialVersionUID = 6096623410113055655L;
16
17 private UserService userService;
18 private List<User> userList;
19 private User user;
20
21 public UserAction(UserService userService) {
22 this.userService = userService;
23 }
24
25 public List<User> getUserList() {
26 return userList;
27 }
28
29 public void setUserList(List<User> userList) {
30 this.userList = userList;
31 }
32
33 public User getUser() {
34 return user;
35 }
36
37 public void setUser(User user) {
38 this.user = user;
39