#macro ( property $name $type ) private $type $name; private boolean isset_${name}; #end #macro ( access $name $type ) public #javatype02(${type}) get#ucf02($name)() { return this.$name; } public void set#ucf02($name)(#javatype02(${type}) ${name}) { this.${name} = ${name}; this.isset_${name} = true; } public boolean isEmpty#ucf02($name)() { #if (${stringUtils.getJavaType($type)} == "String") return this.${name} == null || this.${name}.length() == 0; #else return this.${name} == null; #end } #end #macro (join $name $type) if (this.isEmpty#ucf02($name)()) { sbWhere.append("($name is null)"); } else { #if(${stringUtils.getJavaType($type)} == "String") sbWhere.append("($name='" + this.doFilter(this.get#ucf02($name)())+ "')"); #else sbWhere.append("($name=" + this.get#ucf02($name)()+ ")"); #end } sbWhere.append(" AND "); #end #macro ( lower02 $value )${value.toLowerCase()}#end #macro ( upper02 $value )${value.toUpperCase()}#end #macro ( lcf02 $name )${stringUtils.toLowerCaseFirst($name)}#end #macro ( ucf02 $name )${stringUtils.toUpperCaseFirst($name)}#end #macro ( mapperName02 $value )${stringUtils.toUpperCaseFirst(${value.toLowerCase()})}_mapper#end #macro ( poName02 $value )${stringUtils.toUpperCaseFirst(${value.toLowerCase()})}#end #macro ( javatype02 $type )${stringUtils.getJavaType($type)}#end ############################################################################################# package com.iplatform.model.po; import com.walker.jdbc.BaseMapper; import com.walker.jdbc.ResultSetUtils; import com.walker.jdbc.SqlAndParameters; import com.walker.jdbc.sqlgen.DeleteBuilder; import com.walker.jdbc.sqlgen.InsertBuilder; import com.walker.jdbc.sqlgen.SelectBuilder; import com.walker.jdbc.sqlgen.UpdateBuilder; import com.walker.jdbc.util.StringUtils; import org.springframework.jdbc.core.RowMapper; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Map; /** * 表名:#upper02($table_name) * * @author genrator */ public class #mapperName02($table_name) extends #poName02($table_name) implements BaseMapper<#poName02($table_name)> { // 序列化版本号 private static final long serialVersionUID = 1L; public static final RowMapper<#poName02($table_name)> ROW_MAPPER = new #poName02($table_name)RowMapper(); // 主键 public static final String #upper02(${pk_name}) = "#lower02(${pk_name})"; // 普通属性 #foreach ($property in $columns) public static final String #upper02($property.name) = "#lower02($property.name)"; #end /** * 默认构造函数 */ public #mapperName02(${table_name})(#poName02($table_name) #lower02($table_name)) { if (#lower02($table_name) == null) { throw new IllegalArgumentException("po参数不允许为空!"); } //主键 if (#lower02($table_name).isset_${pk_name}) { this.set#ucf02(${pk_name})(#lower02($table_name).get#ucf02(${pk_name})()); } //普通属性 #foreach ($property in $columns) if (#lower02($table_name).isset_${property.name}) { this.set#ucf02($property.name)(#lower02($table_name).get#ucf02($property.name)()); } #end // 去掉,2022-09-07 // this.setDatabaseName_(#lower02($table_name).getDatabaseName_()); } /** * 获取表名 */ @Override public String getTableName_() { String tableName = "#lower02($table_name)"; /** if (StringUtils.isNotEmpty(this.getDatabaseName_())) { return this.getDatabaseName_() + "." + tableName; } else { return tableName; } */ return tableName; } /** * 获取主键名称 */ @Override public String getPkName_() { return #upper02(${pk_name}); } /** * 获取主键值 */ @Override public Object getPkValue_() { return this.get#ucf02(${pk_name})(); } /** * 获取插入语句和参数 */ @Override public SqlAndParameters> getInsertSql_() { InsertBuilder ib = new InsertBuilder(this.getTableName_()); ib.set(#upper02(${pk_name}), this.get#ucf02(${pk_name})()); #foreach ($property in $columns) ib.set(#upper02(${property.name}), this.get#ucf02(${property.name})(), this.isset_${property.name}); #end return ib.genMapSql(); } /** * 获取更新语句和参数 */ @Override public SqlAndParameters> getUpdateSql_() { UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); #foreach ($property in $columns) ub.set(#upper02(${property.name}), this.get#ucf02(${property.name})(), this.isset_${property.name}); #end ub.where(this.getPkName_(), this.getPkValue_()); return ub.genMapSql(); } /** * 获取更新语句和参数 */ @Override public SqlAndParameters> getUpdateSql_(String where, Map parameters) { UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); #foreach ($property in $columns) ub.set(#upper02(${property.name}), this.get#ucf02(${property.name})(), this.isset_${property.name}); #end return ub.genMapSql(where, parameters); } /** * 获取更新语句和参数 */ @Override public SqlAndParameters getUpdateSql_(String where, Object[] parameters) { UpdateBuilder ub = new UpdateBuilder(this.getTableName_()); #foreach ($property in $columns) ub.set(#upper02(${property.name}), this.get#ucf02(${property.name})(), this.isset_${property.name}); #end return ub.genArraySql(where, parameters); } /** * 获取删除语句和参数 */ @Override public SqlAndParameters> getDeleteSql_() { DeleteBuilder db = new DeleteBuilder(this.getTableName_()); db.where(this.getPkName_(), this.getPkValue_()); return db.genMapSql(); } /** * 获取删除语句和参数 */ @Override public SqlAndParameters> getDeleteSql_(String where, Map parameters) { DeleteBuilder db = new DeleteBuilder(this.getTableName_()); return db.genMapSql(where, parameters); } /** * 获取删除语句和参数 */ @Override public SqlAndParameters getDeleteSql_(String where, Object[] parameters) { DeleteBuilder db = new DeleteBuilder(this.getTableName_()); return db.genArraySql(where, parameters); } /** * 获取单行查询语句和参数 */ @Override public SqlAndParameters> getSingleSql_() { SelectBuilder sb = new SelectBuilder(this.getTableName_()); sb.where(this.getPkName_(), this.getPkValue_()); return sb.genMapSql(); } #set($fields="${pk_name}") #foreach ($property in $columns) #set($fields = $fields.concat(", ").concat(${property.name})) #end /** * 获取查询语句和参数 */ @Override public SqlAndParameters> getSelectSql_(String where, Map parameters) { return new SqlAndParameters<>("select $fields from " + this.getTableName_() + " " + where, parameters); } /** * 获取查询语句和参数 */ @Override public SqlAndParameters getSelectSql_(String where, Object[] parameters) { return new SqlAndParameters<>("select $fields from " + this.getTableName_() + " " + where, parameters); } /** * 将resultset的一行转化为po */ @Override public #poName02($table_name) mapRow(ResultSet rs, int i) throws SQLException { return ROW_MAPPER.mapRow(rs, i); } /** * 克隆 */ public #poName02($table_name) to#poName02($table_name)() { return super.$clone(); } } /** * $table_name RowMapper * * @author genrator */ class #poName02($table_name)RowMapper implements RowMapper<#poName02($table_name)> { @Override public #poName02($table_name) mapRow(ResultSet rs, int i) throws SQLException { ResultSetUtils resultSetUtils = new ResultSetUtils(); #poName02($table_name) #lower02($table_name) = new #poName02(${table_name})(); Integer columnIndex; //主键 columnIndex = resultSetUtils.findColumn(rs, #mapperName02($table_name).#upper02(${pk_name})); if (columnIndex > 0) { #if(${stringUtils.getJavaType($pk_type)} == "String") #lower02($table_name).set#ucf02(${pk_name})(rs.getString(columnIndex)); #end #if(${stringUtils.getJavaType($pk_type)} == "Integer") #lower02($table_name).set#ucf02(${pk_name})(rs.getInt(columnIndex)); #end #if(${stringUtils.getJavaType($pk_type)} == "Long") #lower02($table_name).set#ucf02(${pk_name})(rs.getLong(columnIndex)); #end #if(${stringUtils.getJavaType($pk_type)} == "Float") #lower02($table_name).set#ucf02(${pk_name})(rs.getFloat(columnIndex)); #end #if(${stringUtils.getJavaType($pk_type)} == "Double") #lower02($table_name).set#ucf02(${pk_name})(rs.getDouble(columnIndex)); #end #if(${stringUtils.getJavaType($pk_type)} == "java.math.BigDecimal") #lower02($table_name).set#ucf02(${pk_name})(rs.getBigDecimal(columnIndex)); #end #if(${stringUtils.getJavaType($pk_type)} == "java.util.Date") #lower02($table_name).set#ucf02(${pk_name})(rs.getDate(columnIndex)); #end } //普通属性 #foreach ($property in $columns) columnIndex = resultSetUtils.findColumn(rs, #mapperName02($table_name).#upper02($property.name)); if (columnIndex > 0) { #if(${stringUtils.getJavaType($property.type)} == "String") #lower02($table_name).set#ucf02($property.name)(rs.getString(columnIndex)); #end #if(${stringUtils.getJavaType($property.type)} == "Integer") if (rs.getBigDecimal(columnIndex) == null) { #lower02($table_name).set#ucf02($property.name)(null); } else { #lower02($table_name).set#ucf02($property.name)(rs.getInt(columnIndex)); } #end #if(${stringUtils.getJavaType($property.type)} == "Long") if (rs.getBigDecimal(columnIndex) == null) { #lower02($table_name).set#ucf02($property.name)(null); } else { #lower02($table_name).set#ucf02($property.name)(rs.getLong(columnIndex)); } #end #if(${stringUtils.getJavaType($property.type)} == "Float") if (rs.getBigDecimal(columnIndex) == null) { #lower02($table_name).set#ucf02($property.name)(null); } else { #lower02($table_name).set#ucf02($property.name)(rs.getFloat(columnIndex)); } #end #if(${stringUtils.getJavaType($property.type)} == "Double") if (rs.getBigDecimal(columnIndex) == null) { #lower02($table_name).set#ucf02($property.name)(null); } else { #lower02($table_name).set#ucf02($property.name)(rs.getDouble(columnIndex)); } #end #if(${stringUtils.getJavaType($property.type)} == "java.math.BigDecimal") #lower02($table_name).set#ucf02($property.name)(rs.getBigDecimal(columnIndex)); #end #if(${stringUtils.getJavaType($property.type)} == "byte[]") #lower02($table_name).set#ucf02($property.name)(rs.getBytes(columnIndex)); #end #if(${stringUtils.getJavaType($property.type)} == "java.util.Date") #lower02($table_name).set#ucf02($property.name)(rs.getDate(columnIndex)); #end } #end return #lower02($table_name); } }