eclipse ibabis代码生成插件abator功能扩展

主要改进有
1为dao添加Integer selectCountByExample或Integer selectCountByExampleWithoutBLOBs接口及相应的sqlmap查询记录总数
2分页子句支持(目前仅支持mysql)
在example中添加属性limitClauseStart和limitClauseCount为接口selectByExample添加物理分页支持

将该项目在eclipse下编译打包后替换原插件下的abator.jar即可
注:目前仅对generatorSet="Java5"有效
生成代码示例:
sqlmap:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="t_role">
  <resultMap class="com.u2lux.abator.model.TRole" id="abatorgenerated_TRoleResult">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    <result column="r_ROLE_ID" jdbcType="INTEGER" property="roleId"/>
    <result column="r_ROLE_NAME" jdbcType="VARCHAR" property="roleName"/>
  </resultMap>
  <sql id="abatorgenerated_Example_Where_Clause">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    <iterate conjunction="or" prepend="where" property="oredCriteria" removeFirstPrepend="iterate">
      (
      <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithoutValue">
        $oredCriteria[].criteriaWithoutValue[]$
      </iterate>
      <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithSingleValue">
        $oredCriteria[].criteriaWithSingleValue[].condition$
          #oredCriteria[].criteriaWithSingleValue[].value#
      </iterate>
      <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithListValue">
        $oredCriteria[].criteriaWithListValue[].condition$
        <iterate close=")" conjunction="," open="(" property="oredCriteria[].criteriaWithListValue[].values">
          #oredCriteria[].criteriaWithListValue[].values[]#
        </iterate>
      </iterate>
      <iterate conjunction="and" prepend="and" property="oredCriteria[].criteriaWithBetweenValue">
        $oredCriteria[].criteriaWithBetweenValue[].condition$
        #oredCriteria[].criteriaWithBetweenValue[].values[0]# and
        #oredCriteria[].criteriaWithBetweenValue[].values[1]#
      </iterate>
      )
    </iterate>
  </sql>
  <select id="abatorgenerated_selectByPrimaryKey" parameterClass="com.u2lux.abator.model.TRole" resultMap="abatorgenerated_TRoleResult">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    select r.ROLE_ID as r_ROLE_ID, r.ROLE_NAME as r_ROLE_NAME
    from t_role r
    where r.ROLE_ID = #roleId:INTEGER#
  </select>
  <select id="abatorgenerated_selectByExample" parameterClass="com.u2lux.abator.model.TRoleExample" resultMap="abatorgenerated_TRoleResult">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    select r.ROLE_ID as r_ROLE_ID, r.ROLE_NAME as r_ROLE_NAME
    from t_role r
    <isParameterPresent>
      <include refid="t_role.abatorgenerated_Example_Where_Clause"/>
      <isNotNull property="orderByClause">
        order by $orderByClause$
      </isNotNull>
      <isNotNull property="limitClauseStart">
        limit #limitClauseStart:INTEGER#, #limitClauseCount:INTEGER#
      </isNotNull>

    </isParameterPresent>
  </select>
  <select id="abatorgenerated_selectCountByExample" parameterClass="com.u2lux.abator.model.TRoleExample" resultClass="java.lang.Integer">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    select count(*)
    from t_role r
    <isParameterPresent>
      <include refid="t_role.abatorgenerated_Example_Where_Clause"/>
    </isParameterPresent>
  </select>

  <delete id="abatorgenerated_deleteByPrimaryKey" parameterClass="com.u2lux.abator.model.TRole">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    delete from t_role
    where ROLE_ID = #roleId:INTEGER#
  </delete>
  <delete id="abatorgenerated_deleteByExample" parameterClass="com.u2lux.abator.model.TRoleExample">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    delete from t_role r
    <include refid="t_role.abatorgenerated_Example_Where_Clause"/>
  </delete>
  <insert id="abatorgenerated_insert" parameterClass="com.u2lux.abator.model.TRole">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    insert into t_role (ROLE_NAME)
    values (#roleName:VARCHAR#)
    <selectKey keyProperty="roleId" resultClass="java.lang.Integer">
      SELECT LAST_INSERT_ID()
    </selectKey>
  </insert>
  <update id="abatorgenerated_updateByPrimaryKey" parameterClass="com.u2lux.abator.model.TRole">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    update t_role
    set ROLE_NAME = #roleName:VARCHAR#
    where ROLE_ID = #roleId:INTEGER#
  </update>
  <update id="abatorgenerated_updateByPrimaryKeySelective" parameterClass="com.u2lux.abator.model.TRole">
    <!--
      WARNING - This element is automatically generated by Abator for iBATIS, do not modify.
      This element was generated on Tue Jan 22 15:50:00 CST 2008.
    -->
    update t_role
    <dynamic prepend="set">
      <isNotNull prepend="," property="roleName">
        ROLE_NAME = #roleName:VARCHAR#
      </isNotNull>
    </dynamic>
    where ROLE_ID = #roleId#
  </update>
</sqlMap>

dao接口:
package com.u2lux.abator.dao;

import com.u2lux.abator.model.TRole;
import com.u2lux.abator.model.TRoleExample;
import java.util.List;

public interface TRoleDAO {

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    Integer insert(TRole record);

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    int updateByPrimaryKey(TRole record);

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    int updateByPrimaryKeySelective(TRole record);

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    List<TRole> selectByExample(TRoleExample example);

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    Integer selectCountByExample(TRoleExample example);

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    TRole selectByPrimaryKey(Integer roleId);

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    int deleteByExample(TRoleExample example);

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    int deleteByPrimaryKey(Integer roleId);
}

dao实现:

package com.u2lux.abator.dao;

import com.u2lux.abator.model.TRole;
import com.u2lux.abator.model.TRoleExample;
import java.util.List;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

public class TRoleDAOImpl extends SqlMapClientDaoSupport implements TRoleDAO {

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public TRoleDAOImpl() {
super();
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public Integer insert(TRole record) {
Object newKey = getSqlMapClientTemplate().insert(
"t_role.abatorgenerated_insert", record);
return (Integer) newKey;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public int updateByPrimaryKey(TRole record) {
int rows = getSqlMapClientTemplate().update(
"t_role.abatorgenerated_updateByPrimaryKey", record);
return rows;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public int updateByPrimaryKeySelective(TRole record) {
int rows = getSqlMapClientTemplate().update(
"t_role.abatorgenerated_updateByPrimaryKeySelective", record);
return rows;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    @SuppressWarnings("unchecked")
    public List<TRole> selectByExample(TRoleExample example) {
List<TRole> list = (List<TRole>) getSqlMapClientTemplate()
.queryForList("t_role.abatorgenerated_selectByExample", example);
return list;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public Integer selectCountByExample(TRoleExample example) {
Object count = getSqlMapClientTemplate().queryForObject(
"t_role.abatorgenerated_selectCountByExample", example);
return (Integer) count;
    }


    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public TRole selectByPrimaryKey(Integer roleId) {
TRole key = new TRole();
key.setRoleId(roleId);
TRole record = (TRole) getSqlMapClientTemplate().queryForObject(
"t_role.abatorgenerated_selectByPrimaryKey", key);
return record;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public int deleteByExample(TRoleExample example) {
int rows = getSqlMapClientTemplate().delete(
"t_role.abatorgenerated_deleteByExample", example);
return rows;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public int deleteByPrimaryKey(Integer roleId) {
TRole key = new TRole();
key.setRoleId(roleId);
int rows = getSqlMapClientTemplate().delete(
"t_role.abatorgenerated_deleteByPrimaryKey", key);
return rows;
    }
}

生成的model:

package com.u2lux.abator.model;

import com.u2lux.abator.SerializableModel;

public class TRole extends SerializableModel {

    /**
*
*/
private static final long serialVersionUID = -549201827251112100L;
/**
     * This field was generated by Abator for iBATIS. This field corresponds to the database column t_role.ROLE_ID
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    private Integer roleId;
    /**
     * This field was generated by Abator for iBATIS. This field corresponds to the database column t_role.ROLE_NAME
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    private String roleName;

    /**
     * This method was generated by Abator for iBATIS. This method returns the value of the database column t_role.ROLE_ID
     * @return  the value of t_role.ROLE_ID
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public Integer getRoleId() {
return roleId;
    }

    /**
     * This method was generated by Abator for iBATIS. This method sets the value of the database column t_role.ROLE_ID
     * @param roleId  the value for t_role.ROLE_ID
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public void setRoleId(Integer roleId) {
this.roleId = roleId;
    }

    /**
     * This method was generated by Abator for iBATIS. This method returns the value of the database column t_role.ROLE_NAME
     * @return  the value of t_role.ROLE_NAME
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public String getRoleName() {
return roleName;
    }

    /**
     * This method was generated by Abator for iBATIS. This method sets the value of the database column t_role.ROLE_NAME
     * @param roleName  the value for t_role.ROLE_NAME
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public void setRoleName(String roleName) {
this.roleName = roleName;
    }
}

生成的example:

package com.u2lux.abator.model;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TRoleExample {

    /**
     * This field was generated by Abator for iBATIS. This field corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    private String orderByClause;
    /**
     * This field was generated by Abator for iBATIS. This field corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    private Integer limitClauseStart;    /**
     * This field was generated by Abator for iBATIS. This field corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    private Integer limitClauseCount;    /**
     * This field was generated by Abator for iBATIS. This field corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    private List<Criteria> oredCriteria = new ArrayList<Criteria>();

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public String getOrderByClause() {
return orderByClause;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public void setLimitClauseStart(Integer limitClauseStart) {
this.limitClauseStart = limitClauseStart;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public Integer getLimitClauseStart() {
return limitClauseStart;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public void setLimitClauseCount(Integer limitClauseCount) {
this.limitClauseCount = limitClauseCount;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public Integer getLimitClauseCount() {
return limitClauseCount;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public List<Criteria> getOredCriteria() {
return oredCriteria;
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public void or(Criteria criteria) {
oredCriteria.add(criteria);
    }

    /**
     * This method was generated by Abator for iBATIS. This method corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public Criteria createCriteria() {
Criteria criteria = new Criteria();
if (oredCriteria.size() == 0) {
    oredCriteria.add(criteria);
}
return criteria;
    }

    /**
     * This class was generated by Abator for iBATIS. This class corresponds to the database table t_role
     * @abatorgenerated  Tue Jan 22 15:50:00 CST 2008
     */
    public static class Criteria {
private List<String> criteriaWithoutValue;
private List<Map<String, Object>> criteriaWithSingleValue;
private List<Map<String, Object>> criteriaWithListValue;
private List<Map<String, Object>> criteriaWithBetweenValue;

private Criteria() {
    super();
    criteriaWithoutValue = new ArrayList<String>();
    criteriaWithSingleValue = new ArrayList<Map<String, Object>>();
    criteriaWithListValue = new ArrayList<Map<String, Object>>();
    criteriaWithBetweenValue = new ArrayList<Map<String, Object>>();
}

public List<String> getCriteriaWithoutValue() {
    return criteriaWithoutValue;
}

public List<Map<String, Object>> getCriteriaWithSingleValue() {
    return criteriaWithSingleValue;
}

public List<Map<String, Object>> getCriteriaWithListValue() {
    return criteriaWithListValue;
}

public List<Map<String, Object>> getCriteriaWithBetweenValue() {
    return criteriaWithBetweenValue;
}

private void addCriterion(String condition, Object value,
String property) {
    if (value == null) {
throw new RuntimeException("Value for " + property
+ " cannot be null");
    }
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("condition", condition);
    map.put("value", value);
    criteriaWithSingleValue.add(map);
}

private void addCriterion(String condition,
List<? extends Object> values, String property) {
    if (values == null || values.size() == 0) {
throw new RuntimeException("Value list for " + property
+ " cannot be null or empty");
    }
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("condition", condition);
    map.put("values", values);
    criteriaWithListValue.add(map);
}

private void addCriterion(String condition, Object value1,
Object value2, String property) {
    if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property
+ " cannot be null");
    }
    List<Object> list = new ArrayList<Object>();
    list.add(value1);
    list.add(value2);
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("condition", condition);
    map.put("values", list);
    criteriaWithBetweenValue.add(map);
}

public Criteria andRoleIdIsNull() {
    criteriaWithoutValue.add("r.ROLE_ID is null");
    return this;
}

public Criteria andRoleIdIsNotNull() {
    criteriaWithoutValue.add("r.ROLE_ID is not null");
    return this;
}

public Criteria andRoleIdEqualTo(Integer value) {
    addCriterion("r.ROLE_ID =", value, "roleId");
    return this;
}

public Criteria andRoleIdNotEqualTo(Integer value) {
    addCriterion("r.ROLE_ID <>", value, "roleId");
    return this;
}

public Criteria andRoleIdGreaterThan(Integer value) {
    addCriterion("r.ROLE_ID >", value, "roleId");
    return this;
}

public Criteria andRoleIdGreaterThanOrEqualTo(Integer value) {
    addCriterion("r.ROLE_ID >=", value, "roleId");
    return this;
}

public Criteria andRoleIdLessThan(Integer value) {
    addCriterion("r.ROLE_ID <", value, "roleId");
    return this;
}

public Criteria andRoleIdLessThanOrEqualTo(Integer value) {
    addCriterion("r.ROLE_ID <=", value, "roleId");
    return this;
}

public Criteria andRoleIdIn(List<Integer> values) {
    addCriterion("r.ROLE_ID in", values, "roleId");
    return this;
}

public Criteria andRoleIdNotIn(List<Integer> values) {
    addCriterion("r.ROLE_ID not in", values, "roleId");
    return this;
}

public Criteria andRoleIdBetween(Integer value1, Integer value2) {
    addCriterion("r.ROLE_ID between", value1, value2, "roleId");
    return this;
}

public Criteria andRoleIdNotBetween(Integer value1, Integer value2) {
    addCriterion("r.ROLE_ID not between", value1, value2, "roleId");
    return this;
}

public Criteria andRoleNameIsNull() {
    criteriaWithoutValue.add("r.ROLE_NAME is null");
    return this;
}

public Criteria andRoleNameIsNotNull() {
    criteriaWithoutValue.add("r.ROLE_NAME is not null");
    return this;
}

public Criteria andRoleNameEqualTo(String value) {
    addCriterion("r.ROLE_NAME =", value, "roleName");
    return this;
}

public Criteria andRoleNameNotEqualTo(String value) {
    addCriterion("r.ROLE_NAME <>", value, "roleName");
    return this;
}

public Criteria andRoleNameGreaterThan(String value) {
    addCriterion("r.ROLE_NAME >", value, "roleName");
    return this;
}

public Criteria andRoleNameGreaterThanOrEqualTo(String value) {
    addCriterion("r.ROLE_NAME >=", value, "roleName");
    return this;
}

public Criteria andRoleNameLessThan(String value) {
    addCriterion("r.ROLE_NAME <", value, "roleName");
    return this;
}

public Criteria andRoleNameLessThanOrEqualTo(String value) {
    addCriterion("r.ROLE_NAME <=", value, "roleName");
    return this;
}

public Criteria andRoleNameLike(String value) {
    addCriterion("r.ROLE_NAME like", value, "roleName");
    return this;
}

public Criteria andRoleNameNotLike(String value) {
    addCriterion("r.ROLE_NAME not like", value, "roleName");
    return this;
}

public Criteria andRoleNameIn(List<String> values) {
    addCriterion("r.ROLE_NAME in", values, "roleName");
    return this;
}

public Criteria andRoleNameNotIn(List<String> values) {
    addCriterion("r.ROLE_NAME not in", values, "roleName");
    return this;
}

public Criteria andRoleNameBetween(String value1, String value2) {
    addCriterion("r.ROLE_NAME between", value1, value2, "roleName");
    return this;
}

public Criteria andRoleNameNotBetween(String value1, String value2) {
    addCriterion("r.ROLE_NAME not between", value1, value2, "roleName");
    return this;
}
    }
}

你可能感兴趣的:(DAO,eclipse,sql,mysql,ibatis)