标签:pack map import 作用 pen XML use ddc lob
工欲善其事,必先利其器
在使用MyBatis Generator 的时候生成的XML的Mapper文件总是不尽人意,例如在处理JdbcType为VARCHAR类型是只做null判断,在Update的时候就会出现一些不符合要求的作用不会做空字符串判断,利用剩余时间研究了一下源代码,如下:
package org.mybatis.generator.codegen.mybatis3.xmlmapper.elements; import org.mybatis.generator.api.IntrospectedColumn; import org.mybatis.generator.api.dom.java.FullyQualifiedJavaType; import org.mybatis.generator.api.dom.xml.Attribute; import org.mybatis.generator.api.dom.xml.TextElement; import org.mybatis.generator.api.dom.xml.XmlElement; import org.mybatis.generator.codegen.mybatis3.ListUtilities; import org.mybatis.generator.codegen.mybatis3.MyBatis3FormattingUtilities; import org.mybatis.generator.config.GeneratedKey; /** * * @author Jeff Butler * */ public class InsertSelectiveElementGenerator extends AbstractXmlElementGenerator { @Override public void addElements(XmlElement parentElement) { ... sb.setLength(0); sb.append(introspectedColumn.getJavaProperty()); sb.append(" != null"); //$NON-NLS-1$ XmlElement insertNotNullElement = new XmlElement("if"); //$NON-NLS-1$ insertNotNullElement.addAttribute(new Attribute( "test", sb.toString())); //$NON-NLS-1$ sb.setLength(0); sb.append(MyBatis3FormattingUtilities .getEscapedColumnName(introspectedColumn)); sb.append(‘,‘); ... }
没看错就是拼接字符串,在这个地方可以随意的添加内容。
其他内容可以在
package org.mybatis.generator.codegen.ibatis2.sqlmap; public class SqlMapGenerator extends AbstractXmlGenerator { protected XmlElement getSqlMapElement() { .... addResultMapWithoutBLOBsElement(answer); addResultMapWithBLOBsElement(answer); addExampleWhereClauseElement(answer); addBaseColumnListElement(answer); addBlobColumnListElement(answer); addSelectByExampleWithBLOBsElement(answer); addSelectByExampleWithoutBLOBsElement(answer); addSelectByPrimaryKeyElement(answer); addDeleteByPrimaryKeyElement(answer); addDeleteByExampleElement(answer); addInsertElement(answer); addInsertSelectiveElement(answer); addCountByExampleElement(answer); addUpdateByExampleSelectiveElement(answer); addUpdateByExampleWithBLOBsElement(answer); addUpdateByExampleWithoutBLOBsElement(answer); addUpdateByPrimaryKeySelectiveElement(answer); addUpdateByPrimaryKeyWithBLOBsElement(answer); addUpdateByPrimaryKeyWithoutBLOBsElement(answer); ... }
查看和定制。
标签:pack map import 作用 pen XML use ddc lob
原文地址:http://www.cnblogs.com/JNUX/p/6986500.html