打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Struts2.0+ibatis2.3整合实例实现服务层及Struts - 51CTO.C...
    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字段映射自定义对象浅析
    【责任编辑:李彦光 TEL:(010)68476606】

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
使ibatis支持hibernate式的物理分页
iBatis入门
MyBatis 简单入门
如何手写Mybatis?
POI3.5读取Excel2007
jqGrid基础学习:3jqGrid与后台的交互(基于struts2) | 曾华水的博客
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服