[瞎折腾]使用freemarker编写MyBatis的Mapper.xml自动生成工具

本文介绍了如何使用Freemarker编写一个MyBatis的Mapper.xml自动生成工具。虽然最终因无法满足所有需求而放弃,但分享了结合MyBatis和Spring的配置,以及利用Freemarker生成动态SQL的过程,包括模板文件编写和变量处理等细节。
摘要由CSDN通过智能技术生成
MyBatis是 iBatis的新项目名,是一个java的持久化框架,和目前一家独大的Hibernate相比MyBatis显得比较的被冷漠。两个都是好框架,大家习惯用哪个而已。因为之前一直是用iBatis,现在看到新版的MyBatis想来学习一下。
MyBatis的官网有很详细的user guides,而且还有中文,看一两天就可以上手:
新版的一个重点特性是新增动态SQL(dynamic SQL),简单来说就是能够使用while、if、elseif、loop,就是在Mapper.xml中加入条件控制,基于这个不算新的功能,我妄想写一个生成工具对每个表生成一份可以完全实现80%数据库操作的mapper.xml,最终工具是产生了,但是达不到理想的效果,原因有几方面:
1、不能满足所有的需求
2、不能生成级联的mapper
3、生成的mapper很大,解析起来非常耗时,即效率不好
4、实际应用意义不大
基于上面的几点,我放弃了对其的改进,不过在这个过程中有不少有用的知识点需要记录下来。另外补充的是,官方有一个自动生成的插件: http://code.google.com/p/mybatis/downloads/list?can=3&q=Product%3DGenerator 一样的不好用,还是自己写sql比较好。
一、MyBatis和Spring结合
MyBatis和Spring结合非常简单,配置也不复杂,除了Spring和Mybatis的jar包外还需要插件包mybatis-spring-1.0.1.jar ,上面的jar都可以在 http://code.google.com/p/mybatis/下载到。
现在有一个项目如图:

关注java/org.mybatis.jpetstore.persistence和resource/org.mybatis.jpetstore.persistence两个包,java下的是dao的接口,resource下的是数据表的Mapper。
里面有一个表如下:
create table category (
    catid varchar(10) not null,
    name varchar(80) null,
    descn varchar(255) null,
    constraint pk_category primary key (catid)
); 
现在你需要对这个表根据id进行select操作,首先需要定义一个接口CategoryMapper.java:
public interface CategoryMapper {
  Category getCategory(String categoryId);
} 
然后需要新建一个Mapper,CategoryMapper.xml:
<mapper namespace="org.mybatis.jpetstore.persistence.CategoryMapper">
  <cache />
   <select id="getCategoryList" resultType="Category">
    SELECT
      CATID AS categoryId,
      NAME,
      DESCN AS description
    FROM CATEGORY
  </select>
</mapper> 
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值