#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<Map<String, Object>> 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<Map<String, Object>> 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<Map<String, Object>> getUpdateSql_(String where, Map<String, 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.genMapSql(where, parameters);
|
}
|
|
/**
|
* 获取更新语句和参数
|
*/
|
@Override
|
public SqlAndParameters<Object[]> 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<Map<String, Object>> getDeleteSql_() {
|
DeleteBuilder db = new DeleteBuilder(this.getTableName_());
|
db.where(this.getPkName_(), this.getPkValue_());
|
return db.genMapSql();
|
}
|
|
/**
|
* 获取删除语句和参数
|
*/
|
@Override
|
public SqlAndParameters<Map<String, Object>> getDeleteSql_(String where, Map<String, Object> parameters) {
|
DeleteBuilder db = new DeleteBuilder(this.getTableName_());
|
return db.genMapSql(where, parameters);
|
}
|
|
/**
|
* 获取删除语句和参数
|
*/
|
@Override
|
public SqlAndParameters<Object[]> getDeleteSql_(String where, Object[] parameters) {
|
DeleteBuilder db = new DeleteBuilder(this.getTableName_());
|
return db.genArraySql(where, parameters);
|
}
|
|
/**
|
* 获取单行查询语句和参数
|
*/
|
@Override
|
public SqlAndParameters<Map<String, Object>> 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<Map<String, Object>> getSelectSql_(String where, Map<String, Object> parameters) {
|
return new SqlAndParameters<>("select $fields from " + this.getTableName_() + " " + where, parameters);
|
}
|
|
/**
|
* 获取查询语句和参数
|
*/
|
@Override
|
public SqlAndParameters<Object[]> 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);
|
}
|
}
|