Struts2.0+ibatis2.3完美整合实例之映射浅析

Struts2.0+ibatis2.3完美整合实例如何实现呢?让我们开始具体的步骤:

10年积累的网站设计、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有赫章免费网站建设让你可以放心的选择与我们合作。

Struts2.0+ibatis2.3完美整合实例一、我们先把数据库的表映射出来,即Users.java

 
 
 
  1. package org.login.vo;
  2. /**
  3.  * Users Entity Bean
  4.  * @author jinlong0
  5.  */
  6. public class Users {
  7.     private Integer id;
  8.     private String userName;
  9.     private String password;
  10.         
  11.     public Integer getId() {
  12.         return id;
  13.     }
  14.     public void setId(Integer id) {
  15.         this.id = id;
  16.     }
  17.     public String getUserName() {
  18.         return userName;
  19.     }
  20.     public void setUserName(String userName) {
  21.         this.userName = userName;
  22.     }
  23.     public String getPassword() {
  24.         return password;
  25.     }
  26.     public void setPassword(String password) {
  27.         this.password = password;
  28.     }
  29.     public Users() {
  30.         
  31.     }
  32.     public Users(Integer id, String userName, String password) {
  33.         super();
  34.         this.id = id;
  35.         this.userName = userName;
  36.         this.password = password;
  37.     }
  38.     
  39. }

Struts2.0+ibatis2.3完美整合实例二、接下来我们把映射的XML写出来,即Users.xml

 
 
 
  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥
  2. ﹤!DOCTYPE sqlMap      
  3.     PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"      
  4.     "http://ibatis.apache.org/dtd/sql-map-2.dtd"﹥
  5. ﹤sqlMap namespace="User"﹥
  6.     ﹤typeAlias alias="user" type="org.login.vo.Users"/﹥
  7.     
  8.     ﹤resultMap class="user" id="get-all-user"﹥
  9.         ﹤result property="id" column="id"/﹥
  10.         ﹤result property="userName" column="username"/﹥
  11.         ﹤result property="password" column="password"/﹥
  12.     ﹤/resultMap﹥
  13.     
  14.     ﹤select id="checkUser" parameterClass="user" resultClass="user"﹥
  15.         ﹤![CDATA[
  16.             SELECT id, username, password FROM users WHERE username = #userName# and password = #password#
  17.         ]]﹥
  18.     ﹤/select﹥
  19.     
  20.     ﹤select id="getUserById" parameterClass="java.lang.Integer" resultClass="user"﹥
  21.         ﹤![CDATA[
  22.             SELECT id, username, password FROM users WHERE id = #id#
  23.         ]]﹥
  24.     ﹤/select﹥
  25.     
  26.     ﹤select id="getAllUser" resultMap="get-all-user"﹥
  27.         ﹤![CDATA[
  28.             SELECT id, username, password FROM users
  29.         ]]﹥
  30.     ﹤/select﹥
  31.     
  32.     ﹤insert id="insertUser" parameterClass="user"﹥
  33.         ﹤![CDATA[
  34.             INSERT INTO users (username, password) VALUES (#userName#, #password#)
  35.         ]]﹥
  36.     ﹤/insert﹥
  37.     
  38.     ﹤update id="updateUser" parameterClass="user"﹥
  39.         ﹤![CDATA[
  40.             UPDATE users SET username=#userName#, password=#password# WHERE id=#id#
  41.         ]]﹥
  42.     ﹤/update﹥
  43.     
  44.     ﹤delete id="deleteUser" parameterClass="java.lang.Integer"﹥
  45.         ﹤![CDATA[
  46.             DELETE FROM users WHERE id = #id#
  47.         ]]﹥
  48.     ﹤/delete﹥
  49. ﹤/sqlMap﹥

在这里我们要特别注意的是与Hibernate的xml的区别,在这个映射的xml里有了所有的数据操作的SQL语句,这也是ibatis的一个特点,它的半自动化,让开发人员能随心所欲的,想必学过ibatis的都很清楚了,在这里我就不详细说明了,呵呵!

Struts2.0+ibatis2.3完美整合实例三、接下来我们就写DAO层的接口及实现

接口IUserDAO.java

 
 
 
  1. package org.login.dao;
  2. import java.util.List;
  3. import org.login.vo.Users;
  4. public interface IUserDAO {
  5.     List﹤Users﹥ getAllUser();
  6.     
  7.     Users getUserById(Integer id);
  8.     
  9.     boolean isLogin(Users user);
  10.     
  11.     boolean insertUser(Users user);
  12.     
  13.     boolean updateUser(Users user);
  14.     
  15.     boolean deleteUser(Integer id);
  16. }
  17. 实现类:UserDAO.java
  18. package org.login.dao.Impl;
  19. import java.sql.SQLException;
  20. import java.util.List;
  21. import org.login.dao.IUserDAO;
  22. import org.login.vo.Users;
  23. import org.springframework.beans.factory.annotation.Autowired;
  24. import org.springframework.beans.factory.annotation.Qualifier;
  25. import org.springframework.stereotype.Service;
  26. import com.ibatis.sqlmap.client.SqlMapClient;
  27. @SuppressWarnings("unchecked")
  28. @Service("userDAO")
  29. public class UserDAO implements IUserDAO {
  30.     @Autowired(required=false)
  31.     @Qualifier("sqlClient")
  32.     private SqlMapClient client = null;
  33.     public SqlMapClient getClient() {
  34.         return client;
  35.     }
  36.     public void setClient(SqlMapClient client) {
  37.         this.client = client;
  38.     }
  39.     @Override
  40.     public boolean deleteUser(Integer id) {
  41.         try {
  42.             client.delete("deleteUser", id);
  43.             return true;
  44.         } catch (SQLException e) {
  45.             e.printStackTrace();
  46.         }
  47.         return false;
  48.     }
  49.     @Override
  50.     public List﹤Users﹥ getAllUser() {
  51.         List﹤Users﹥ list = null;
  52.         try {
  53.             list =  client.queryForList("getAllUser");
  54.         } catch (SQLException e) {
  55.             e.printStackTrace();
  56.         }
  57.         return list;
  58.     }
  59.     @Override
  60.     public boolean insertUser(Users user) {
  61.         try {
  62.             client.insert("insertUser", user);
  63.             return true;
  64.         } catch (SQLException e) {
  65.             e.printStackTrace();
  66.         }
  67.         return false;
  68.     }
  69.     @Override
  70.     public boolean updateUser(Users user) {
  71.         try {
  72.             client.update("updateUser", user);
  73.             return true;
  74.         } catch (SQLException e) {
  75.             e.printStackTrace();
  76.         }
  77.         return false;
  78.     }
  79.     @Override
  80.     public boolean isLogin(Users user) {
  81.         try {
  82.             Users u = (Users) client.queryForObject("checkUser", user);
  83.             if (u != null) {
  84.                 return true;
  85.             }
  86.         } catch (SQLException e) {
  87.             e.printStackTrace();
  88.         }
  89.         return false;
  90.     }
  91.     @Override
  92.     public Users getUserById(Integer id) {
  93.         Users u = null;
  94.         try {
  95.             u = (Users) client.queryForObject("getUserById", id);
  96.         } catch (SQLException e) {
  97.             e.printStackTrace();
  98.         }
  99.         return u;
  100.     }
  101. }

在这里,接口和我们前面的Hibernate的例子类同,只是实现类区别有点大了。

特别应该注意的是Spring2.5中类的注入方式,是用标注方式注入的,即:

@Service("userDAO")

@Autowired(required=false)

@Qualifier("sqlClient")

这是我们特别应该注意的,这是标注,详细说明见Spring2.5的开发手册。

这篇就写到这里吧,下篇我们将说明服务层及Struts层的实现,如果有兴趣研究的朋友可以先下载示例代码先看下,具体的下载地址如下:

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

Struts2.0+ibatis2.3完美整合实例之映射实现就向你介绍到这里,希望对你有所帮助。

当前标题:Struts2.0+ibatis2.3完美整合实例之映射浅析
URL网址:http://www.mswzjz.cn/qtweb/news41/513341.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能