Struts2.0+ibatis2.3整合实例实现服务层及Struts

开发 后端
Struts2.0+ibatis2.3整合实例实现服务层及Struts是如何达成的呢?本文将会给你这方面的讲解。

服务层这里我就不用做介绍了,这里的实现和以前Hibernate的例子基本类同,唯一不同的是使用了Spring2.5的标注方式实现类的注入。

Struts2.0+ibatis2.3整合实例之IUserService.java

  1. package org.login.service;  
  2.  
  3. import java.util.List;  
  4.  
  5. import org.login.vo.Users;  
  6.  
  7. public interface IUserService {  
  8.       
  9.     List﹤Users﹥ getAllUser();  
  10.       
  11.     Users getUserById(Integer id);  
  12.       
  13.     boolean isLogin(Users user);  
  14.       
  15.     boolean insertUser(Users user);  
  16.       
  17.     boolean updateUser(Users user);  
  18.       
  19.     boolean deleteUser(Integer id);  
  20. }  
  21.  
  22. 服务层实现:UserService.java  
  23.  
  24. package org.login.service.Impl;  
  25.  
  26. import java.util.List;  
  27.  
  28. import org.login.dao.IUserDAO;  
  29. import org.login.service.IUserService;  
  30. import org.login.vo.Users;  
  31. import org.springframework.beans.factory.annotation.Autowired;  
  32. import org.springframework.beans.factory.annotation.Qualifier;  
  33. import org.springframework.stereotype.Service;  
  34.  
  35. @Service("userService")  
  36. public class UserService implements IUserService {  
  37.  
  38.     @Autowired(required=false)  
  39.     @Qualifier("userDAO")  
  40.     private IUserDAO userDAO = null;  
  41.       
  42.     public IUserDAO getUserDAO() {  
  43.         return userDAO;  
  44.     }  
  45.  
  46.     public void setUserDAO(IUserDAO userDAO) {  
  47.         this.userDAO = userDAO;  
  48.     }  
  49.  
  50.     @Override 
  51.     public boolean deleteUser(Integer id) {  
  52.           
  53.         return userDAO.deleteUser(id);  
  54.     }  
  55.  
  56.     @Override 
  57.     public List﹤Users﹥ getAllUser() {  
  58.           
  59.         return userDAO.getAllUser();  
  60.     }  
  61.  
  62.     @Override 
  63.     public boolean insertUser(Users user) {  
  64.           
  65.         return userDAO.insertUser(user);  
  66.     }  
  67.  
  68.     @Override 
  69.     public boolean isLogin(Users user) {  
  70.           
  71.         return userDAO.isLogin(user);  
  72.     }  
  73.  
  74.     @Override 
  75.     public boolean updateUser(Users user) {  
  76.           
  77.         return userDAO.updateUser(user);  
  78.     }  
  79.  
  80.     @Override 
  81.     public Users getUserById(Integer id) {  
  82.           
  83.         return userDAO.getUserById(id);  
  84.     }  
  85.  

Struts层的实现也是比较简单了,与上述的区别都一样,在这里我就不太多说了。

Struts2.0+ibatis2.3整合实例之Login.java

  1.  package org.login.actions;  
  2.  
  3. import java.util.List;  
  4.  
  5. import javax.servlet.http.HttpServletRequest;  
  6.  
  7. import org.apache.struts2.interceptor.ServletRequestAware;  
  8. import org.login.service.IUserService;  
  9. import org.login.vo.Users;  
  10. import org.springframework.beans.factory.annotation.Autowired;  
  11. import org.springframework.beans.factory.annotation.Qualifier;  
  12. import org.springframework.stereotype.Service;  
  13.  
  14. import com.opensymphony.xwork2.ActionSupport;  
  15.  
  16. @SuppressWarnings({"serial","unchecked"})  
  17. @Service("login")  
  18. public class Login extends ActionSupport implements ServletRequestAware {  
  19.  
  20.     private static final String UPDATE = "update";  
  21.       
  22.     private HttpServletRequest request = null;  
  23.       
  24.     @Autowired(required = false)  
  25.     @Qualifier("userService")  
  26.     private IUserService userService = null;  
  27.       
  28.     private String id = null;  
  29.     private String name = null;  
  30.     private String password = null;  
  31.       
  32.     public String getName() {  
  33.         return name;  
  34.     }  
  35.  
  36.     public void setName(String name) {  
  37.         this.name = name;  
  38.     }  
  39.  
  40.     public String getPassword() {  
  41.         return password;  
  42.     }  
  43.  
  44.     public void setPassword(String password) {  
  45.         this.password = password;  
  46.     }  
  47.       
  48.     public String getId() {  
  49.         return id;  
  50.     }  
  51.  
  52.     public void setId(String id) {  
  53.         this.id = id;  
  54.     }  
  55.       
  56.     public IUserService getUserService() {  
  57.         return userService;  
  58.     }  
  59.  
  60.     public void setUserService(IUserService userService) {  
  61.         this.userService = userService;  
  62.     }  
  63.  
  64.     @Override 
  65.     public String execute() throws Exception {  
  66.         Users user = new Users();  
  67.         user.setUserName(name);  
  68.         user.setPassword(password);  
  69.         if (getUserService().isLogin(user)) {  
  70.             return SUCCESS;  
  71.         }  
  72.         return INPUT;  
  73.     }  
  74.       
  75.     public String save() throws Exception {  
  76.         Users user = new Users();  
  77.         user.setUserName(name);  
  78.         user.setPassword(password);  
  79.         if (getUserService().insertUser(user)) {  
  80.             return SUCCESS;  
  81.         }  
  82.         return ERROR;  
  83.     }  
  84.  
  85.     public String update() throws Exception {  
  86.         Users user = null;  
  87.         String action = request.getParameter("action");  
  88.         String id = request.getParameter("id");  
  89.         if ("loading".equals(action)) {  
  90.               
  91.             user = new Users();  
  92.             user = getUserService().getUserById(Integer.valueOf(id));  
  93.             if (null != user) {  
  94.                 request.setAttribute("user", user);  
  95.             }  
  96.             return UPDATE;  
  97.               
  98.         } else {  
  99.             user = new Users();  
  100.             user.setUserName(name);  
  101.             user.setPassword(password);  
  102.             user.setId(Integer.valueOf(id));  
  103.             if (getUserService().updateUser(user)) {  
  104.                 return SUCCESS;  
  105.             }  
  106.         }  
  107.           
  108.         return ERROR;  
  109.     }  
  110.       
  111.     public String delete() throws Exception {  
  112.         String id = request.getParameter("id");  
  113.         if (getUserService().deleteUser(Integer.valueOf(id))) {  
  114.             return SUCCESS;  
  115.         }  
  116.         return ERROR;  
  117.     }  
  118.       
  119.       
  120.     public String findAllUsers() throws Exception {  
  121.         List﹤Users﹥ list = getUserService().getAllUser();   
  122.         if (list.size() ﹥ 0) {  
  123.             request.setAttribute("list", list);  
  124.             return SUCCESS;  
  125.         }  
  126.         return ERROR;  
  127.     }  
  128.  
  129.     @Override 
  130.     public void setServletRequest(HttpServletRequest request) {  
  131.         this.request = request;          
  132.     }  

到现在为止,我们的底层的类已经全部实现了,下来我们看其配置文件:

Struts2.0+ibatis2.3整合实例之struts.xml

  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥  
  2. ﹤!DOCTYPE struts PUBLIC  
  3.         "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.         "http://struts.apache.org/dtds/struts-2.0.dtd"﹥  
  5. ﹤struts﹥  
  6.     ﹤include file="struts-default.xml"/﹥  
  7.     ﹤package name="struts2" extends="struts-default"﹥  
  8.         ﹤action name="logon" class="login"﹥  
  9.             ﹤result name="success"﹥/success.jsp﹤/result﹥  
  10.             ﹤result name="input"﹥/login.jsp﹤/result﹥  
  11.         ﹤/action﹥  
  12.         ﹤action name="save" class="login" method="save"﹥  
  13.             ﹤result name="success"﹥/success.jsp﹤/result﹥  
  14.             ﹤result name="error"﹥/error.jsp﹤/result﹥  
  15.         ﹤/action﹥  
  16.         ﹤action name="update" class="login" method="update"﹥  
  17.             ﹤result name="success"﹥/success.jsp﹤/result﹥  
  18.             ﹤result name="update"﹥/update.jsp﹤/result﹥  
  19.             ﹤result name="error"﹥/error.jsp﹤/result﹥  
  20.         ﹤/action﹥  
  21.         ﹤action name="delete" class="login" method="delete"﹥  
  22.             ﹤result name="success"﹥/success.jsp﹤/result﹥  
  23.             ﹤result name="error"﹥/error.jsp﹤/result﹥  
  24.         ﹤/action﹥  
  25.         ﹤action name="show" class="login" method="findAllUsers"﹥  
  26.             ﹤result name="success"﹥/list.jsp﹤/result﹥  
  27.             ﹤result name="error"﹥/error.jsp﹤/result﹥  
  28.         ﹤/action﹥  
  29.     ﹤/package﹥  
  30. ﹤/struts﹥ 

Struts2.0+ibatis2.3整合实例之Struts.properties

struts.locale=zh_CN

struts.i18n.encoding=UTF-8 

struts.objectFactory=spring 

接下来也是与之前例子不同的地方,就是ibatis的配置文件:

config.xml

  1.  ﹤?xml version="1.0" encoding="UTF-8"?﹥  
  2. ﹤!DOCTYPE sqlMapConfig        
  3.     PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"        
  4.     "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"﹥  
  5.       
  6. ﹤sqlMapConfig﹥  
  7.     ﹤sqlMap resource="org/login/vo/Users.xml"/﹥  
  8. ﹤/sqlMapConfig﹥ 

这个文件比较简单,只配置了bean的映射文件。

***一个配置文件就是Spring的配置文件了,这个也是最关键的,与以前的配置是截然不同,因为在Spring2.5使用了标注方式注入,同时她了具有了自动的搜索bean的能力,所以配置就相当的简单,如果有不明白的地方,可以写到评论里,或者给我留言,这也是Spring2.5最难理解的地方了。

applicationContext.xml

  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥  
  2. ﹤beans xmlns="http://www.springframework.org/schema/beans" 
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  4.        xmlns:context="http://www.springframework.org/schema/context" 
  5.        xsi:schemaLocation="http://www.springframework.org/schema/beans   
  6.            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
  7.            http://www.springframework.org/schema/context  
  8.            http://www.springframework.org/schema/context/spring-context-2.5.xsd"﹥  
  9.       
  10.     ﹤context:annotation-config /﹥  
  11.     ﹤bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"﹥  
  12.         ﹤property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver" /﹥  
  13.         ﹤property name="url" value="jdbc:jtds:sqlserver://localhost:1433/pubs" /﹥  
  14.         ﹤property name="username" value="sa" /﹥  
  15.         ﹤property name="password" value="aa" /﹥  
  16.     ﹤/bean﹥  
  17.       
  18.     ﹤bean id="sqlClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"﹥  
  19.         ﹤property name="dataSource"﹥  
  20.             ﹤ref local="dataSource"/﹥  
  21.         ﹤/property﹥  
  22.         ﹤property name="configLocation"﹥  
  23.             ﹤value﹥classpath:config.xml﹤/value﹥  
  24.         ﹤/property﹥  
  25.     ﹤/bean﹥  
  26.     ﹤context:component-scan base-package="org.login" /﹥  
  27. ﹤/beans﹥ 

这篇就写到这里吧,下篇我们将说明页面层的代码,至于说明我想也不用了,如果有兴趣研究的朋友可以先下载示例代码先看下,具体的下载地址如下:

演示示例下载地址:Struts2.0+Spring2.5.1+ibatis2.3地址:http://download.csdn.net/source/331581

Struts2.0+ibatis2.3整合实例之实现服务层及Struts就向你介绍到这里,希望多你有所帮助。

【编辑推荐】

  1. 在iBATIS.NET中调用存储过程浅析
  2. Struts2.0+Springframework2.5+ibatis2.3***整合实例
  3. Struts2.0+ibatis2.3***整合实例之映射浅析
  4. iBATIS.NET字段映射自定义对象浅析
  5. iBATIS.NET字段映射自定义对象浅析
责任编辑:仲衡 来源: CSDN博客
相关推荐

2009-07-20 17:01:11

Struts2.0+i

2009-07-20 16:41:27

Struts2.0+i

2009-07-20 16:07:19

Struts2.0 S

2009-07-17 17:45:56

iBATIS Spri

2009-06-05 11:01:23

struts mvcMVC工作原理

2009-06-19 10:00:37

Struts和Spri

2009-07-17 17:16:48

Spring iBAT

2011-05-03 09:40:58

iBatis

2009-06-10 14:53:25

netbeans st实例

2009-06-05 10:43:29

struts2 checheckbox实例

2009-06-08 16:52:00

2009-06-03 14:19:34

Struts2Guice

2010-07-30 16:04:17

Flex2struts

2012-05-25 10:41:33

StrutsDWRJava

2009-06-23 14:01:27

StrutsTapestryJSF

2009-06-18 15:56:49

Struts和Spri

2009-03-24 10:30:35

SpringStruts集成

2009-03-06 14:34:31

StrutsHibernateSpring

2009-09-21 17:10:14

struts Hibe

2009-09-22 13:02:05

ibmdwStruts
点赞
收藏

51CTO技术栈公众号