public abstract class MapperTemplate extends Object
| 构造器和说明 |
|---|
MapperTemplate(Class<?> mapperClass,
MapperHelper mapperHelper) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
addMethodMap(String methodName,
Method method)
添加映射方法
|
org.apache.ibatis.mapping.SqlSource |
createSqlSource(org.apache.ibatis.mapping.MappedStatement ms,
String xmlSql)
通过xmlSql创建sqlSource
|
String |
dynamicSQL(Object record)
该方法仅仅用来初始化ProviderSqlSource
|
org.apache.ibatis.scripting.xmltags.IfSqlNode |
ExampleValidSqlNode(org.apache.ibatis.session.Configuration configuration) |
org.apache.ibatis.scripting.xmltags.WhereSqlNode |
exampleWhereClause(org.apache.ibatis.session.Configuration configuration)
Example查询中的where结构
|
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getAllIfColumnNode(Class<?> entityClass)
获取所有列的where节点中的if判断列
|
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getColumnEqualsProperty(EntityColumn column,
boolean first)
获取
[AND] column = #{property} |
protected List<org.apache.ibatis.mapping.ParameterMapping> |
getColumnParameterMappings(org.apache.ibatis.mapping.MappedStatement ms)
根据对象生成所有列的映射
|
protected String |
getDynamicTableName(Class<?> entityClass)
获取表名 - 支持动态表名
|
protected String |
getDynamicTableName(Class<?> entityClass,
String parameterName)
获取表名 - 支持动态表名,该方法用于多个入参时,通过parameterName指定入参中实体类的@Param的注解值
|
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getDynamicTableNameNode(Class<?> entityClass)
获取表名 - 支持动态表名
|
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getDynamicTableNameNode(Class<?> entityClass,
String parameterName)
获取表名 - 支持动态表名,该方法用于多个入参时,通过parameterName指定入参中实体类的@Param的注解值
|
Class<?> |
getEntityClass(org.apache.ibatis.mapping.MappedStatement ms)
获取返回值类型 - 实体类型
|
String |
getIDENTITY() |
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getIfCacheIsNull(EntityColumn column,
org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
返回if条件的sqlNode
一般类型:
<if test="property_cache! |
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getIfCacheNotNull(EntityColumn column,
org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
返回if条件的sqlNode
一般类型:
<if test="property! |
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getIfIsNull(EntityColumn column,
org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
返回if条件的sqlNode
一般类型:
<if test="property==null">columnNode</if> |
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getIfNotNull(EntityColumn column,
org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
返回if条件的sqlNode
一般类型:
<if test="property! |
protected org.apache.ibatis.scripting.xmltags.SqlNode |
getIfNotNull(EntityColumn column,
org.apache.ibatis.scripting.xmltags.SqlNode columnNode,
boolean empty)
返回if条件的sqlNode
一般类型:
<if test="property! |
static Class<?> |
getMapperClass(String msId)
根据msId获取接口类
|
static String |
getMethodName(org.apache.ibatis.mapping.MappedStatement ms)
获取执行的方法名
|
static String |
getMethodName(String msId)
获取执行的方法名
|
protected List<org.apache.ibatis.mapping.ParameterMapping> |
getPrimaryKeyParameterMappings(org.apache.ibatis.mapping.MappedStatement ms)
根据对象生成主键映射
|
protected String |
getSeqNextVal(EntityColumn column)
获取序列下个值的表达式
|
String |
getUUID() |
boolean |
isBEFORE() |
boolean |
isNotEmpty() |
protected void |
newSelectKeyMappedStatement(org.apache.ibatis.mapping.MappedStatement ms,
EntityColumn column)
新建SelectKey节点 - 只对mysql的自动增长有效,Oracle序列直接写到列中
|
protected void |
setResultType(org.apache.ibatis.mapping.MappedStatement ms,
Class<?> entityClass)
设置返回值类型 - 为了让typeHandler在select时有效,改为设置resultMap
|
void |
setSqlSource(org.apache.ibatis.mapping.MappedStatement ms)
重新设置SqlSource
|
protected void |
setSqlSource(org.apache.ibatis.mapping.MappedStatement ms,
org.apache.ibatis.mapping.SqlSource sqlSource)
重新设置SqlSource,同时判断如果是Jdbc3KeyGenerator,就设置为MultipleJdbc3KeyGenerator
|
boolean |
supportMethod(String msId)
是否支持该通用方法
|
protected String |
tableName(Class<?> entityClass)
获取实体类的表名
|
org.apache.ibatis.scripting.xmltags.WhereSqlNode |
updateByExampleWhereClause(org.apache.ibatis.session.Configuration configuration)
Example-Update中的where结构
|
public MapperTemplate(Class<?> mapperClass, MapperHelper mapperHelper)
public static String getMethodName(org.apache.ibatis.mapping.MappedStatement ms)
ms - public void addMethodMap(String methodName, Method method)
methodName - method - public String getUUID()
public String getIDENTITY()
public boolean isBEFORE()
public boolean isNotEmpty()
public boolean supportMethod(String msId)
msId - protected void setResultType(org.apache.ibatis.mapping.MappedStatement ms,
Class<?> entityClass)
ms - entityClass - protected void setSqlSource(org.apache.ibatis.mapping.MappedStatement ms,
org.apache.ibatis.mapping.SqlSource sqlSource)
ms - sqlSource - public void setSqlSource(org.apache.ibatis.mapping.MappedStatement ms)
throws Exception
ms - InvocationTargetExceptionIllegalAccessExceptionExceptionpublic org.apache.ibatis.mapping.SqlSource createSqlSource(org.apache.ibatis.mapping.MappedStatement ms,
String xmlSql)
ms - xmlSql - public Class<?> getEntityClass(org.apache.ibatis.mapping.MappedStatement ms)
ms - protected List<org.apache.ibatis.mapping.ParameterMapping> getPrimaryKeyParameterMappings(org.apache.ibatis.mapping.MappedStatement ms)
ms - protected String getSeqNextVal(EntityColumn column)
column - protected org.apache.ibatis.scripting.xmltags.SqlNode getDynamicTableNameNode(Class<?> entityClass)
entityClass - protected org.apache.ibatis.scripting.xmltags.SqlNode getDynamicTableNameNode(Class<?> entityClass, String parameterName)
entityClass - parameterName - protected String getDynamicTableName(Class<?> entityClass)
entityClass - protected String getDynamicTableName(Class<?> entityClass, String parameterName)
entityClass - parameterName - protected org.apache.ibatis.scripting.xmltags.SqlNode getIfNotNull(EntityColumn column, org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
一般类型:<if test="property!=null">columnNode</if>
column - columnNode - protected org.apache.ibatis.scripting.xmltags.SqlNode getIfNotNull(EntityColumn column, org.apache.ibatis.scripting.xmltags.SqlNode columnNode, boolean empty)
一般类型:<if test="property!=null">columnNode</if>
column - columnNode - empty - 是否包含!=''条件protected org.apache.ibatis.scripting.xmltags.SqlNode getIfIsNull(EntityColumn column, org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
一般类型:<if test="property==null">columnNode</if>
column - protected org.apache.ibatis.scripting.xmltags.SqlNode getIfCacheNotNull(EntityColumn column, org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
一般类型:<if test="property!=null">columnNode</if>
column - protected org.apache.ibatis.scripting.xmltags.SqlNode getIfCacheIsNull(EntityColumn column, org.apache.ibatis.scripting.xmltags.SqlNode columnNode)
一般类型:<if test="property_cache!=null">columnNode</if>
column - protected org.apache.ibatis.scripting.xmltags.SqlNode getColumnEqualsProperty(EntityColumn column, boolean first)
[AND] column = #{property}column - first - protected org.apache.ibatis.scripting.xmltags.SqlNode getAllIfColumnNode(Class<?> entityClass)
entityClass - protected List<org.apache.ibatis.mapping.ParameterMapping> getColumnParameterMappings(org.apache.ibatis.mapping.MappedStatement ms)
ms - protected void newSelectKeyMappedStatement(org.apache.ibatis.mapping.MappedStatement ms,
EntityColumn column)
ms - column - public org.apache.ibatis.scripting.xmltags.IfSqlNode ExampleValidSqlNode(org.apache.ibatis.session.Configuration configuration)
public org.apache.ibatis.scripting.xmltags.WhereSqlNode exampleWhereClause(org.apache.ibatis.session.Configuration configuration)
configuration - public org.apache.ibatis.scripting.xmltags.WhereSqlNode updateByExampleWhereClause(org.apache.ibatis.session.Configuration configuration)
configuration - Copyright © 2015. All rights reserved.