在spring中使用mybatis_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3865 | 回复: 0   主题: 在spring中使用mybatis        下一篇 
yun
注册用户
等级:少校
经验:1082
发帖:83
精华:4
注册:2012-12-17
状态:离线
发送短消息息给yun 加好友    发送短消息息给yun 发消息
发表于: IP:您无权察看 2012-12-17 18:06:21 | [全部帖] [楼主帖] 楼主

今天在使用mybatis的时候,发现dao的实现竟然可以不需要写一行代码,让我小小的震惊了一翻。

以下是截取mybatis官方文档中的一个小例子。比较好的说明了这个情况

需要的jar文件。 spring 3.0.5版本。 mybatis-3.0.5  mybatis-spring-1.0.1以及其依赖的包

Java代码   北京联动北方科技有限公司


  1. package org.mybatis.jpetstore.domain; 
  2. import java.io.Serializable; 
  3. public class Category implements Serializable { 
  4.       
  5.        private static final long serialVersionUID = 3992469837058393712L; 
  6.       
  7.        private String categoryId; 
  8.        private String name; 
  9.        private String description; 
  10.       
  11.        public String getCategoryId() { 
  12.              return categoryId; 
  13.        } 
  14.       
  15.        public void setCategoryId(String categoryId) { 
  16.              this.categoryId = categoryId.trim(); 
  17.        } 
  18.       
  19.        public String getName() { 
  20.              return name; 
  21.        } 
  22.       
  23.        public void setName(String name) { 
  24.              this.name = name; 
  25.        } 
  26.       
  27.        public String getDescription() { 
  28.              return description; 
  29.        } 
  30.       
  31.        public void setDescription(String description) { 
  32.              this.description = description; 
  33.        } 
  34.       
  35.        public String toString() { 
  36.              return getCategoryId(); 
  37.        } 
  38.       



注意,必须实现序列化,不然报java.io.NotSerializableException异常

service层web层暂时省略直接持久层吧

Java代码   北京联动北方科技有限公司


  1. package org.mybatis.jpetstore.persistence; 
  2. import java.util.List; 
  3. import org.mybatis.jpetstore.domain.Category; 
  4. public interface CategoryMapper { 
  5.       
  6.        List<Category> getCategoryList(); 
  7.       
  8.        Category getCategory(String categoryId); 
  9.       



这就是持久层的全部代码。只有一个接口而已。实现已经不必要再写了。完全有mybatis配置文件搞定

CategoryMapper.xml


Xml代码   北京联动北方科技有限公司


  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
  4. <mapper namespace="org.mybatis.jpetstore.persistence.CategoryMapper"> 
  5.  <cache /> 
  6.  <select id="getCategory" parameterType="string" resultType="Category"> 
  7.  SELECT 
  8.  CATID AS categoryId, 
  9.  NAME, 
  10.  DESCN AS description 
  11.  FROM CATEGORY 
  12.  WHERE CATID = #{categoryId} 
  13.  </select> 
  14.  <select id="getCategoryList" resultType="Category"> 
  15.  SELECT 
  16.  CATID AS categoryId, 
  17.  NAME, 
  18.  DESCN AS description 
  19.  FROM CATEGORY 
  20.  </select> 
  21. </mapper> 


    其中id=getCategory表示调用的是getCategory(),parameterType表示参数的类型。这个是String类型。resultType表示的是返回值类型。会由mybatis自动封装。id=getCategoryList调用的是getCategoryList()。返回值Category。会被自动包装成List<Category>。

        没有什么查询,封装之类的东西。这就是持久层的全部代码。表示以前没见过。

接下来是applicationContext.xml中配置了。

最主要是下面两个配置:

Xml代码   北京联动北方科技有限公司


  1. <!-- define the SqlSessionFactory -->  
  2.    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  3.        <property name="dataSource" ref="dataSource" />  
  4.        <property name="typeAliasesPackage" value="org.mybatis.jpetstore.domain" />  
  5.    </bean>  


配置SqlSessionFactory。这是mybatis-spring-1.0.1提供的。而不是用spring里面的SqlMap....的包。

Xml代码  




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论