mybatis通用mapper源码解析
Posted 随风逝去,只是凋零
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis通用mapper源码解析相关的知识,希望对你有一定的参考价值。
1.javabean的属性值生成sql
/** * 获取所有查询列,如id,name,code... * * @param entityClass * @return */ public static String getAllColumns(Class<?> entityClass) { Set<EntityColumn> columnSet = EntityHelper.getColumns(entityClass); StringBuilder sql = new StringBuilder(); for (EntityColumn entityColumn : columnSet) { sql.append(entityColumn.getColumn()).append(","); } return sql.substring(0, sql.length() - 1); }
/** * 判断自动==null的条件结构 * * @param entityName * @param column * @param contents * @param empty * @return */ public static String getIfIsNull(String entityName, EntityColumn column, String contents, boolean empty) { StringBuilder sql = new StringBuilder(); sql.append("<if test=""); if (StringUtil.isNotEmpty(entityName)) { sql.append(entityName).append("."); } sql.append(column.getProperty()).append(" == null"); if (empty && column.getJavaType().equals(String.class)) { sql.append(" or "); if (StringUtil.isNotEmpty(entityName)) { sql.append(entityName).append("."); } sql.append(column.getProperty()).append(" == ‘‘ "); } sql.append("">"); sql.append(contents); sql.append("</if>"); return sql.toString(); }
以上是关于mybatis通用mapper源码解析的主要内容,如果未能解决你的问题,请参考以下文章