Ibatis问题(Abator插件)

写完了一个简单的guid例子,开始建表,准备做登录,session控制。结果建用户表的时候,突然想试试用powerdesigner的OOM直接生成javabean,弄了半天name和code,中英文,大小写问题以后。搜搜,发现人说用pdmreader可以直接生成ibatis的配置sqlmap,dao和javabean。最后证实,这是忽悠人的。。。于是想hibernate不是有成熟的javabean生成插件,ibatis可能还真有,于是还真发现了另一个可以生成ibatis的sqlmap配置文件,javabean,和dao及实现类的插件Abator,适合ibatis用,挺方便的。

    结论是:生成javabean,还是别用powerdesigner的OOM,用eclipse插件吧。

   可惜这个插件有点烦,得改点源码,由于我用的是UTF-8格式文件,在取中文注释的时候烦死了,老是部分乱码,后来才发现不是转码的问题,是写文件的方式不对,不能用FileWriter,用FileOutputStream然后

OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file.getPath()),”UTF-8″);

这样才能生成正常的UTF-8格式的文件。

去掉配置文件table节点的schema,这样生成的sqlMap文件就不加用户名前缀了。

附件(后缀为mp3,改成jar,替换插件下jar即可):

去掉原有生成的多余注释,用”__”开头代替原有的“AbatorGenerated_”开头;

增加javabean生成字段的中文注释,直接从数据库获取,需要配置文件jdbcConnection增加配置<property name=”remarksReporting” value=”true”/>;

修正Abator.java生成UTF-8文件中文乱码问题;

去掉生成的sqlMap文件加的sqlMap后缀。

其实代码很简单,可以直接下源代码,在你Abator新增工程目录下修改源代码,然后替换jar下文件,实现定制化。


2011-10-19更新

比较了下Mybatis和ibatis,最后还是用ibatis,主要是已经弄了老半天ibatis,Spring也没提供Mybatis的整合包,Mybatis自己提供了,并且有自动代码生成工具,但是也不自动生成service和daoimpl,而我已经把Abator改造成支持生成Spring方式的Service和ServiceImpl,ibatis自己改造也能实现分页和批处理。

除了插件生成代码的方式,Abator还试了下面2种生成代码的方式:

1. Abator如果下载了源代码,可以通过修改AbatorRunner.java的jar文件入口方法,直接执行该文件 java application,就可以生成文件了。修改方法如下:

        Map arguments = parseCommandLine(args);
      
        if (!arguments.containsKey(CONFIG_FILE)) {
            writeLine(Messages.getString(“RuntimeError.0″)); //$NON-NLS-1$
            return;
        }

替换为
        Map arguments = new HashMap();
        arguments.put(CONFIG_FILE,”E:\\workspace\\ibatisTest\\abatorConfig.xml”);

2. Abator还支持Ant的方式生成文件,build.xml配置如下:

<project default=”genfiles” basedir=”.”>
<property name=”generated.source.dir” value=”${basedir}” />

<target name=”genfiles” description=”Generate the files”>
  <taskdef name=”abator” classname=”org.apache.ibatis.abator.ant.AbatorAntTask” classpath=”abator.jar” />
  <abator overwrite=”false” configfile=”abatorConfig.xml” verbose=”false”>
   <propertyset>
    <propertyref name=”generated.source.dir” />
   </propertyset>
  </abator>
</target>
</project>

Abator插件,这次修改的内容:

用”__”开头代替,改成用”_”开头;

resultMap还是返回用”_”开头,防止重新生成;

支持生成业务逻辑层Service和ServiceImpl,目前只修改了SPRING下的,需要abatorConfig.xml增加如下配置:
    <serviceGenerator daoPackage=”com.lingran.dao” targetPackage=”com.lingran.service.db” targetProject=”E:\workspace\MyWorld\src” type=”SPRING”/>
    与daoGenerator同层次,daoPackage为上面daoGenerator的targetPackage路径;

你可能感兴趣的:(spring,ibatis,abator,abator)