我的主要工作是做Eclipse插件開發(fā)
在開發(fā)中,遇到一些問題,比較麻煩,象轉(zhuǎn)換文件編碼,或者替換文件內(nèi)容(Eclipse的雖然支持正則式,但只能替換成單行字符串,不爽)
所以自己開發(fā)一個小插件,放出來,方便大家,支持以下功能:
1、將指定的多個文件,進(jìn)行編碼轉(zhuǎn)換,如GBK->UTF-8(因為我做插件開發(fā)的時候,默認(rèn)是GBK,現(xiàn)在要發(fā)布源碼,國外的開發(fā)人員,就有問題,所以做了這個插件)
2、對指定的多個文件,進(jìn)行替換,支持多行文本和正則式
3、將指定的多個文件,恢復(fù)到最近一個版本。
下載地址
另外做個預(yù)告:
本周內(nèi)將發(fā)布我的一個Eclipse數(shù)據(jù)庫插件(約100K行代碼),支持以下功能:
1、數(shù)據(jù)庫正向建模(支持?jǐn)?shù)據(jù)表,存儲過程,視圖),并生成相關(guān)DDL
2、數(shù)據(jù)庫反向工程,支持從數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)表,存儲過程,視圖等數(shù)據(jù)庫元素
3、多數(shù)據(jù)平臺,包括Oracle,DB2,MySql,MsSql,Sybase,PostgreSql等
4、生成測試數(shù)據(jù),可以根據(jù)數(shù)據(jù)庫模型生成測試數(shù)據(jù),方便進(jìn)行單元測試。
5、生成相應(yīng)ORM代碼及配置文件,支持Hibernate3,OJB,IBatis及OpenJPA


以下是為IBatis生成的XML:
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<sql id="selectUserWhere">
<dynamic prepend="where">
..這里省略部分內(nèi)容
</isPropertyAvailable>
<isPropertyAvailable prepend="or" property="user_Or_NotNull_State"><![CDATA[STATE_C is not null]]>
</isPropertyAvailable>
</dynamic>
</sql>
<delete id="deleteUser" parameterClass="String"><![CDATA[
Delete From demo.user_t
Where USER_ID=#userId#
]]>
</delete>
<select id="getUserRolesByUser" parameterClass="String" resultMap="userRoleResult"><![CDATA[
Select USER_ID, ROLE_ID from demo.user_role_t
Where USER_ID=#userId#
]]>
</select>
<select id="doCountUser" parameterClass="java.util.Map" resultClass="int"><![CDATA[
Select count(*) From demo.user_t
$Where$ $condition$]]>
</select>
<update id="updateUser" parameterClass="user"><![CDATA[
Update demo.user_t SET USER_ID=#userId# , USER_NAME=#userName# , PASSWORD=#password# , VALID_FROM=#validFrom# , VALID_TO=#validTo# , TITLE=#title# , DESCRIPTION=#description# , DOMAIN_C=#domain# , GROUP_C=#group# , ORDER_C=#order# , STATE_C=#state# Where USER_ID=#userId#
]]>
</update>
<insert id="insertUser" parameterClass="user"><![CDATA[
Insert Into demo.user_t(USER_ID , USER_NAME , PASSWORD , VALID_FROM , VALID_TO , TITLE , DESCRIPTION , DOMAIN_C , GROUP_C , ORDER_C , STATE_C)
Values(#userId# , #userName# , #password# , #validFrom# , #validTo# , #title# , #description# , #domain# , #group# , #order# , #state#)
]]>
</insert>
<select id="doSelectUser" parameterClass="java.util.Map" resultMap="userResult"><![CDATA[
Select USER_ID, USER_NAME, PASSWORD, VALID_FROM, VALID_TO, TITLE, DESCRIPTION, DOMAIN_C, GROUP_C, ORDER_C, STATE_C from demo.user_t
$Where$ $condition$]]>
</select>
<select id="selectUser" parameterClass="java.util.Map" resultMap="userResult"><![CDATA[
Select USER_ID, USER_NAME, PASSWORD, VALID_FROM, VALID_TO, TITLE, DESCRIPTION, DOMAIN_C, GROUP_C, ORDER_C, STATE_C from demo.user_t
]]>
<include refid="selectUserWhere"/>
</select>
<select id="selectUserByID" parameterClass="String" resultMap="userResult"><![CDATA[
Select USER_ID, USER_NAME, PASSWORD, VALID_FROM, VALID_TO, TITLE, DESCRIPTION, DOMAIN_C, GROUP_C, ORDER_C, STATE_C from demo.user_t
Where USER_ID=#userId#
]]>
</select>
<select id="doDeleteUser" parameterClass="java.util.Map"><![CDATA[
Delete From demo.user_t
$Where$ $condition$]]>
</select>
<delete id="deleteUserByID" parameterClass="String"><![CDATA[
Delete From demo.user_t
]]>
<include refid="selectUserWhere"/>
</delete>
</sqlMap>