本身編譯的ibator1.2.2

自編譯的ibator1.2.2

apache ibatis項目已經終止,新的項目叫Mybatis。
相應的ibator代碼生成工具也變了,終止以前最後的那個版本是ibator1.2.1。
瀏覽mybatis網站發現,有一個未發佈的ibator1.2.2版本。
因而svn下載下來編譯一番,湊合用用。
經測試eclipse 插件運行會報錯(我的能力有限,對eclipse插件編寫不熟悉),用ant或者手寫代碼的方式啓動ibator沒有問題。

ibator1.2.2中的新功能:


生成文件的變化:

1.selectByExample能夠支持distinct
2.Example類增長了一個or方法
3.若是列名是sql關鍵字能夠自動轉義
4.select語句 重構,列名放在一個段 <sql id="Base_Column_List">中。
5.從新設計了eaxmple類,以便於extending,Criteria這部分發生了變化,
6.全部的addCriterionfor JDBC* method都進行了null檢查
7.能夠選擇是否生成ibatorgenerated_前綴

配置文件的變化

8.table標籤增長delimitAllColumns屬性
9.能夠爲<columnOverrides>標籤指定子標籤<property>這個屬性會傳遞到插件中去。
10.<table>增長useCompoundPropertyNames屬性
11.能夠將sql關鍵字自動轉義:<ibatorContext><property name="autoDelimitKeywords" value="true"><property name="beginningDelimiter" value="&quote;"><property name="endingDelimiter" value="&quote;">  </ibatorContext>
sql關鍵字在org.apache.ibatis.ibator.internal.db.SqlReservedWords中

其餘



12.IBATIS-569 - 插件體系加強
13.增長一個插件能夠支持 忽略大小寫的like在example類中
14.IntrospectedColumn類能夠返回全部的數據庫元信息,這樣的話能夠在CommentGenerators中添加數據庫中的備註字段。
15.SqlMap namespace會設置在IntrospectedTable 的屬性中,方便插件訪問。
16.修改了IbatorRunner,以顯示配置文件的錯誤。
17.EqualsHashCodePlugin now generates far superior methods 

另外

本身添加了一個cn/devit/impl/ibator/ClearCommentGenerator1.java,用來替代默認的CommentGenerator。 
這個CommentGenerator會在bean dao sqlmap添加更有意義的註釋。例如字段名字,dao實現,接口文件名,sqlmap文件名,數據庫中字段的註釋,從而將這些個文件連接起來。(eclipse裏面光標移到表明文件名的字符串上而後點F3) 

文件在另外一個地方。java

antsql

<target name="ibator-all" description="Generate the files">
		<echo message="${basedir}/../devit-dev-util/dist/devit-dev-util.jar"></echo>
		<path id="ibator-lib">
					<pathelement location="\eclipse-galileo-3.5.2\dropins\ibator-1.2.2\plugins\org.apache.ibatis.ibator.core_1.2.2.201106071209.jar"/>
		</path>
			<taskdef name="ibator" classname="org.apache.ibatis.ibator.ant.IbatorAntTask"
					classpathref="ibator-lib" />
		<ibator overwrite="true" configfile="${basedir}/ibator-config-ant.xml" verbose="true" contextids="${contextids}">
			<propertyset>
				<propertyref name="generated.source.dir" />
			</propertyset>
		</ibator>
	</target>
代碼方式

import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;


public class IbatorConfigTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
	}

	@After
	public void tearDown() throws Exception {
	}

	@Test
	public void test1() throws Exception{
		List<String> warnings = new ArrayList<String>();
		   boolean overwrite = true;
		   File configFile = new File("test/ibator-config-ant.xml");
		   IbatorConfigurationParser cp = new IbatorConfigurationParser(warnings);
		   IbatorConfiguration config = cp.parseIbatorConfiguration(configFile);
		   DefaultShellCallback callback = new DefaultShellCallback(overwrite);
		   Ibator ibator = new Ibator(config, callback, warnings);
		   ibator.generate(null);
		   for (String string : warnings) {
			System.out.println(string);
		}

	}

}
oracle若是想出comment的話必須在jdbc鏈接上添加屬性:
<jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
			connectionURL="" userId=""
			password="" >
			<property name="remarks" value="true"/>
		</jdbcConnection>
相關文章
相關標籤/搜索