主要改进有
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;
}
}
}
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;
}
}
}
- abator.rar (2.8 MB)
- 下载次数: 493
相关推荐
Eclipse代码生成器插件开发 在本节中,我们将探讨Eclipse代码生成器插件开发的相关知识点。 一、插件开发基本概念 在Eclipse中,插件是一种可以扩展Eclipse功能的组件。插件可以提供新的功能、视图、编辑器等。要...
标题中的“eclipse android 代码生成插件源码”就是这样一个工具,它能够帮助开发者减少手动编写这些基础代码的时间。 首先,`findViewById`方法是在Android开发中用于从布局文件中查找并返回UI组件对象的。通常,...
"eclipse代码行数统计插件"就是这样一个工具,它能够帮助开发者快速地统计出项目中的代码行数,包括注释和空行。 在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择...
Eclipse是广受欢迎的Java集成开发环境,而`mybatis-generator eclipse自动生成代码插件离线安装包`则是为了让开发者在没有网络连接的情况下也能在Eclipse中安装并使用MBG。 安装MBG插件的过程分为以下几个步骤: 1...
写android 程序时,经常会使用findViewById方法、实现Parcelable接口,这些代码重复而又繁琐,所以抽空写了一个eclipse插件来生成这些代码。
在给定的压缩包"插件包"中,可能包含了这个功能的扩展文件,需要按照Eclipse的插件安装步骤进行操作。通常,这包括将插件文件复制到Eclipse的dropins目录,然后重启Eclipse,插件就会自动安装并生效。 安装完成后,...
Eclipse是一款广泛使用的Java集成开发环境(IDE),它提供了丰富的插件支持,以增强其功能。"统计代码行数的Eclipse插件"就是这样一个工具,它能够帮助开发者快速地分析和度量他们的代码库,包括注释和实际可执行...
总结一下,通过在Eclipse中配置和使用无注释版的Abator插件,我们可以快速、高效地生成iBatis的DAO层代码,从而专注于业务逻辑的实现,而不必手动编写重复的数据库访问代码。这极大地提升了开发效率,使得开发过程...
在Eclipse中,代码高亮是提升开发人员编码效率和舒适度的重要功能,它通过不同颜色来区分代码的不同部分,如关键字、变量、注释等,使代码更易于阅读和理解。"eclipse4.4代码高亮插件"正是为了增强Eclipse 4.4(也...
Eclipse 4.6.1代码自动补全插件文件,空格不会上屏
axis2 eclipse插件代码生成器(包含客户端,服务端)axis2-eclipse-codegen-plugin-1.6.2.zip axis2-eclipse-service-plugin-1.6.2.zip
mybatis-eclipse插件及生成代码说明 包含mybatis-eclipse插件、插件的安装说明以及通过一个简单的实例描述如何在eclipse中使用mybatis-eclipse插件自动生成Mybatis相关的model、dao、Mapping等文件。 详见:...
2. **注释行数统计**:注释是代码的重要组成部分,它们提供了对代码功能和用法的解释。插件可以单独统计出注释行数,这对于衡量代码的可读性和维护性提供了数据支持。 3. **实时更新**:当开发者在Eclipse中编辑...
eclipse中可以类似idea那样ctrl+shift+enter自动补全末尾分号,以及换号功能的插件。此插件原来可以在eclipse市场中添加,不过现在页面丢失了,此插件为之前下载保存,下载下来直接复制到eclipse的plugins地下即可,...
eclipse插件生成ssh框架和ssi框架
Eclipse作为一个强大的Java集成开发环境(IDE),提供了丰富的插件支持,其中包括用于统计代码量的插件。本篇文章将详细介绍"Eclipse中用于统计代码量的插件"——org.holon.statistic.lines_1.0.0,以及如何使用这个...
"Eclipse折叠代码块插件"就是针对这一需求而设计的扩展,它增强了原生Eclipse的代码折叠能力。 该插件名为"com.cb.eclipse.folding_1.0.6.jar",版本号为1.0.6,它提供了一种自定义折叠代码块的方法,使用户可以...
为了提高开发效率和代码理解性,Eclipse提供了丰富的插件支持,其中之一就是用于UML反向工程的工具,能够帮助开发者从已有的源代码自动生成类图。本文将详细介绍这款“Eclipse插件之UML反向类图生成工具”。 首先,...
总结,MyBatis Generator插件是Eclipse开发环境中一个高效实用的工具,它能够帮助开发者快速生成与数据库交互的代码,降低开发工作量,提高开发效率。通过合理配置和使用,可以使Java Web开发更加顺畅,减少因手动...
在本文中,我们将深入探讨Eclipse的扩展点及其对开发者的重要性,同时也会提及如何通过插件来利用这些扩展点。 **一、Eclipse扩展点的概念** Eclipse的扩展点是它插件系统的核心组成部分,它定义了插件可以插入或...