Commit 37d70485 authored by yanzg's avatar yanzg

消除成功接收处理

parent d367dd7b
...@@ -11,6 +11,23 @@ import com.yanzuoguang.util.exception.CodeException; ...@@ -11,6 +11,23 @@ import com.yanzuoguang.util.exception.CodeException;
*/ */
public class ByteHelper { public class ByteHelper {
/**
* 每个字节所占用的字符串的长度
*/
public static final int BYTE_STRING_SIZE = 2;
/**
* 16进制转换标识
*/
public static final int BYTE_HEX_UNIT = 16;
/**
* 10进制转换单位
*/
public static final int BYTE_TEN_UNIT = 10;
/**
* BCD标识
*/
public static final int BCD_MAX_FLAG = 100;
// --------------------------------------- toLH ------------------------------------- // --------------------------------------- toLH -------------------------------------
/** /**
...@@ -491,9 +508,9 @@ public class ByteHelper { ...@@ -491,9 +508,9 @@ public class ByteHelper {
* @return 返回转换成功的字符串 如: [0x00,0x01] * @return 返回转换成功的字符串 如: [0x00,0x01]
*/ */
public static byte[] fromHexString1(String from) { public static byte[] fromHexString1(String from) {
byte[] bytes = new byte[from.length() / 2]; byte[] bytes = new byte[from.length() / BYTE_STRING_SIZE];
for (int i = 0; i < from.length() / 2; i++) { for (int i = 0; i < from.length() / BYTE_STRING_SIZE; i++) {
int b = Integer.parseInt(from.substring(i * 2, i * 2 + 2), 16); int b = Integer.parseInt(from.substring(i * BYTE_STRING_SIZE, i * BYTE_STRING_SIZE + BYTE_STRING_SIZE), BYTE_HEX_UNIT);
bytes[i] = (byte) b; bytes[i] = (byte) b;
} }
return bytes; return bytes;
...@@ -522,10 +539,10 @@ public class ByteHelper { ...@@ -522,10 +539,10 @@ public class ByteHelper {
* @return 转换之后的值 * @return 转换之后的值
*/ */
public static byte toBCD(int from) { public static byte toBCD(int from) {
if (from >= 100) { if (from >= BCD_MAX_FLAG) {
throw new CodeException("整形转换成字节的PCD码必须小于100"); throw new CodeException("整形转换成字节的PCD码必须小于100");
} }
byte bt = (byte) ((from / 10 * 16) + from % 10); byte bt = (byte) ((from / BYTE_TEN_UNIT * BYTE_HEX_UNIT) + from % BYTE_TEN_UNIT);
return bt; return bt;
} }
...@@ -536,6 +553,6 @@ public class ByteHelper { ...@@ -536,6 +553,6 @@ public class ByteHelper {
* @return 转换之后的值 * @return 转换之后的值
*/ */
public static int fromBCD(byte from) { public static int fromBCD(byte from) {
return (from / 16) * 10 + from % 16; return (from / BYTE_HEX_UNIT) * BYTE_TEN_UNIT + from % BYTE_HEX_UNIT;
} }
} }
package com.yanzuoguang.code; package com.yanzuoguang.code;
import com.yanzuoguang.util.helper.ByteHelper;
/** /**
* 加密算法0版实现 * 加密算法0版实现
*/ */
...@@ -54,8 +56,8 @@ public class CodePwdImpl implements CodePwd { ...@@ -54,8 +56,8 @@ public class CodePwdImpl implements CodePwd {
for (int i = 0; i < randDaySize; i++) { for (int i = 0; i < randDaySize; i++) {
dayChars[i] = randDay.charAt(i); dayChars[i] = randDay.charAt(i);
} }
for (int i = 0; i < randDaySize / 2; i++) { for (int i = 0; i < randDaySize / ByteHelper.BYTE_STRING_SIZE; i++) {
if (i % 2 == 0) { if (i % ByteHelper.BYTE_STRING_SIZE == 0) {
int to = randDaySize - i - 1; int to = randDaySize - i - 1;
dayChars[to] = randDay.charAt(i); dayChars[to] = randDay.charAt(i);
dayChars[i] = randDay.charAt(to); dayChars[i] = randDay.charAt(to);
......
...@@ -59,4 +59,61 @@ public class DaoConst { ...@@ -59,4 +59,61 @@ public class DaoConst {
* 原字段 * 原字段
*/ */
public static final int ROW_NAME_TYPE_NO_CHANGE = 1; public static final int ROW_NAME_TYPE_NO_CHANGE = 1;
/**
* 主键自增为0
*/
public static final String ZERO = "0";
/**
* 单位地址
*/
public static final int CODE_UNIT = 2;
/**
* 表名代码片段
*/
public static final String TABLE_CODE = "{TABLE}";
/**
* 字段代码片段
*/
public static final String FIELD_CODE = "{FIELD}";
/**
* 值代码片段
*/
public static final String VALUES_CODE = "{VALUES}";
/**
* WHERE条件代码片段
*/
public static final String WHERE_CODE = "{WHERE}";
/**
* 插入SQL语句模板
*/
public static final String INSERT_MODEL = "INSERT INTO {TABLE}({FIELD}) VALUES({VALUES})";
/**
* 更新SQL语句模板
*/
public static final String UPDATE_MODEL = "UPDATE {TABLE} SET {FIELD} WHERE 1=1 {WHERE}";
/**
* 删除SQL语句模板
*/
public static final String REMOVE_MODEL = "DELETE FROM {TABLE} WHERE 1=1 {WHERE}";
/**
* 加载SQL语句模板
*/
public static final String LOAD_MODEL = "SELECT a.*{FIELD} FROM {TABLE} AS a {INNER} WHERE 1=1 {WHERE}";
/**
* 版本号字段名称
*/
public static final String VERSON = "verson";
/**
* 删除字段名称
*/
public static final String ISREMOVE = "isremove";
/**
* 删除字符串长度变量
*/
public static final String ISREMOVE_CONTANS = "contans____isremove";
/**
* ID字段
*/
public static final String ID_FIELD = "id";
} }
...@@ -39,7 +39,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -39,7 +39,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
if (this.table == null) { if (this.table == null) {
throw new CodeException("类" + this.getClass().getName() + "未发现表结构"); throw new CodeException("类" + this.getClass().getName() + "未发现表结构");
} }
return this.table.table.getKeyName(); return this.table.getTable().getKeyName();
} }
/** /**
...@@ -55,7 +55,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -55,7 +55,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
return ""; return "";
} }
String keyString = key.toString(); String keyString = key.toString();
if ("0".equals(keyString)) { if (DaoConst.ZERO .equals(keyString)) {
keyString = ""; keyString = "";
} }
return keyString; return keyString;
...@@ -103,7 +103,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -103,7 +103,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
@Override @Override
public String create(Object model) { public String create(Object model) {
// 判断主键是字符串和需要生成主键 // 判断主键是字符串和需要生成主键
boolean isKeyString = this.table.table.getKeyType() == String.class; boolean isKeyString = this.table.getTable().getKeyType() == String.class;
String keyString = this.getKeyString(model); String keyString = this.getKeyString(model);
// 生成主键 // 生成主键
...@@ -142,7 +142,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -142,7 +142,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
public String update(Object model) { public String update(Object model) {
String keyString = this.getKeyString(model); String keyString = this.getKeyString(model);
if (StringHelper.isEmpty(keyString)) { if (StringHelper.isEmpty(keyString)) {
throw new CodeException("表" + this.table.table.getName() + "主键值为空时不能更新"); throw new CodeException("表" + this.table.getTable().getName() + "主键值为空时不能更新");
} }
this.check(DaoConst.OPERATOR_TYPE_UPDATE, keyString, model); this.check(DaoConst.OPERATOR_TYPE_UPDATE, keyString, model);
SqlData sqlData = this.getSql(DaoConst.UPDATE); SqlData sqlData = this.getSql(DaoConst.UPDATE);
...@@ -268,18 +268,18 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -268,18 +268,18 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
// 获取前台分组的MD5标识 // 获取前台分组的MD5标识
String md5 = this.getMd5(DaoConst.GROUP_QUERY, model); String md5 = this.getMd5(DaoConst.GROUP_QUERY, model);
if (!StringHelper.isEmpty(this.table.table.getMD5KeyName())) { if (!StringHelper.isEmpty(this.table.getTable().getMD5KeyName())) {
ObjectHelper.set(model, this.table.table.getMD5KeyName(), md5); ObjectHelper.set(model, this.table.getTable().getMD5KeyName(), md5);
} }
// 获取标识的实体 // 获取标识的实体
T from; T from;
if (this.table.table.getKeyType() == String.class) { if (this.table.getTable().getKeyType() == String.class) {
from = model; from = model;
this.setKeyString(model, md5); this.setKeyString(model, md5);
} else if (!StringHelper.isEmpty(this.table.table.getMD5KeyName())) { } else if (!StringHelper.isEmpty(this.table.getTable().getMD5KeyName())) {
Map<String, Object> map = new HashMap<String, Object>(); Map<String, Object> map = new HashMap<String, Object>();
map.put(this.table.table.getMD5KeyName(), md5); map.put(this.table.getTable().getMD5KeyName(), md5);
from = this.load(map, cls); from = this.load(map, cls);
} else { } else {
from = this.queryFirst(cls, DaoConst.GROUP_QUERY, model); from = this.queryFirst(cls, DaoConst.GROUP_QUERY, model);
...@@ -317,7 +317,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao { ...@@ -317,7 +317,7 @@ public abstract class BaseDaoImpl extends BaseDaoSql implements BaseDao {
SqlData sql = this.getSql(sqlName); SqlData sql = this.getSql(sqlName);
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
String date = StringHelper.EMPTY; String date = StringHelper.EMPTY;
for (SqlDataField field : sql.sqlDataFields) { for (SqlDataField field : sql.getSqlDataFields()) {
if (sb.length() > 0) { if (sb.length() > 0) {
sb.append(":"); sb.append(":");
} }
......
package com.yanzuoguang.dao.impl; package com.yanzuoguang.dao.impl;
import com.yanzuoguang.dao.DaoConst;
import com.yanzuoguang.dao.TableAnnotation; import com.yanzuoguang.dao.TableAnnotation;
import com.yanzuoguang.db.DbExecute; import com.yanzuoguang.db.DbExecute;
import com.yanzuoguang.db.impl.DbRow; import com.yanzuoguang.db.impl.DbRow;
...@@ -128,7 +129,7 @@ public abstract class BaseDaoSql { ...@@ -128,7 +129,7 @@ public abstract class BaseDaoSql {
if (this.table == null) { if (this.table == null) {
throw new CodeException("类" + this.getClass().getName() + "未发现表结构"); throw new CodeException("类" + this.getClass().getName() + "未发现表结构");
} }
SqlData sql = this.table.Sqls.get(name); SqlData sql = this.table.getSqls().get(name);
if (isThrow && sql == null) { if (isThrow && sql == null) {
throw new CodeException("类" + this.getClass().getName() + "未发现SQL语句" + name); throw new CodeException("类" + this.getClass().getName() + "未发现SQL语句" + name);
} }
...@@ -155,7 +156,7 @@ public abstract class BaseDaoSql { ...@@ -155,7 +156,7 @@ public abstract class BaseDaoSql {
protected int updateSql(SqlData sqlData, Object model) { protected int updateSql(SqlData sqlData, Object model) {
List<Object> paras = new ArrayList<Object>(); List<Object> paras = new ArrayList<Object>();
String sql = this.getQueryPara(paras, sqlData, model); String sql = this.getQueryPara(paras, sqlData, model);
int ret = db.update(this.getClass(), sqlData.name, sql, paras.toArray()); int ret = db.update(this.getClass(), sqlData.getName(), sql, paras.toArray());
this.onUpdateSql(model); this.onUpdateSql(model);
return ret; return ret;
} }
...@@ -181,9 +182,9 @@ public abstract class BaseDaoSql { ...@@ -181,9 +182,9 @@ public abstract class BaseDaoSql {
* @return 查询的结果 * @return 查询的结果
*/ */
protected Object queryCell(SqlData sqlData, Object model) { protected Object queryCell(SqlData sqlData, Object model) {
List<Object> paras = new ArrayList<Object>(); List<Object> paras = new ArrayList<>();
String sql = this.getQueryPara(paras, sqlData, model); String sql = this.getQueryPara(paras, sqlData, model);
Object cell = this.queryCellWithCache(sql, sqlData.name, paras.toArray()); Object cell = this.queryCellWithCache(sql, sqlData.getName(), paras.toArray());
return cell; return cell;
} }
...@@ -211,7 +212,7 @@ public abstract class BaseDaoSql { ...@@ -211,7 +212,7 @@ public abstract class BaseDaoSql {
protected <T extends Object> List<T> queryData(Class<T> cls, SqlData sqlData, Object model) { protected <T extends Object> List<T> queryData(Class<T> cls, SqlData sqlData, Object model) {
List<Object> paras = new ArrayList<Object>(); List<Object> paras = new ArrayList<Object>();
String sql = this.getQueryPara(paras, sqlData, model); String sql = this.getQueryPara(paras, sqlData, model);
List<T> list = this.queryWithCache(cls, sqlData.name, sql, paras.toArray()); List<T> list = this.queryWithCache(cls, sqlData.getName(), sql, paras.toArray());
return list; return list;
} }
...@@ -227,7 +228,7 @@ public abstract class BaseDaoSql { ...@@ -227,7 +228,7 @@ public abstract class BaseDaoSql {
List<Object> paras = new ArrayList<Object>(); List<Object> paras = new ArrayList<Object>();
String sql = this.getQueryPara(paras, sqlData, model); String sql = this.getQueryPara(paras, sqlData, model);
// 查询数据 // 查询数据
db.query(this.getClass(), cls, handle, sqlData.name, sql, paras); db.query(this.getClass(), cls, handle, sqlData.getName(), sql, paras);
} }
/** /**
...@@ -290,7 +291,7 @@ public abstract class BaseDaoSql { ...@@ -290,7 +291,7 @@ public abstract class BaseDaoSql {
SqlData from = this.getSql(sqlName); SqlData from = this.getSql(sqlName);
// 对SQL语句进行分页处理 // 对SQL语句进行分页处理
SqlData to = from.copy(); SqlData to = from.copy();
to.sql = from.sql; to.setSql(from.getSql());
to.addCode("{LIMIT}", " LIMIT " + pageSize.getPageStart() + "," + pageSize.getPageSize()); to.addCode("{LIMIT}", " LIMIT " + pageSize.getPageStart() + "," + pageSize.getPageSize());
return queryData(cls, to, model); return queryData(cls, to, model);
} }
...@@ -417,7 +418,7 @@ public abstract class BaseDaoSql { ...@@ -417,7 +418,7 @@ public abstract class BaseDaoSql {
String[] lastCode = new String[]{"{WHERE}", "{GROUP}", "{HAVING}", "{ORDER}", "{LIMIT}"}; String[] lastCode = new String[]{"{WHERE}", "{GROUP}", "{HAVING}", "{ORDER}", "{LIMIT}"};
// 将SQL语句进行代码片段追加 // 将SQL语句进行代码片段追加
String sql = sqlData.sql; String sql = sqlData.getSql();
for (String code : lastCode) { for (String code : lastCode) {
if (sql.indexOf(code) == -1) { if (sql.indexOf(code) == -1) {
sql += code; sql += code;
...@@ -425,9 +426,10 @@ public abstract class BaseDaoSql { ...@@ -425,9 +426,10 @@ public abstract class BaseDaoSql {
} }
// 处理字段以及代码片段 // 处理字段以及代码片段
Map<String, List<String>> codeMap = new HashMap<String, List<String>>(); // 代码片段缓存 // 代码片段缓存
Map<String, List<String>> codeMap = new HashMap<>();
// 循环处理字段 // 循环处理字段
for (SqlDataField field : sqlData.sqlDataFields) { for (SqlDataField field : sqlData.getSqlDataFields()) {
// 获取值 // 获取值
Object val = ObjectHelper.get(model, field.paraName); Object val = ObjectHelper.get(model, field.paraName);
...@@ -449,10 +451,10 @@ public abstract class BaseDaoSql { ...@@ -449,10 +451,10 @@ public abstract class BaseDaoSql {
// 判断代码片段是否合法 // 判断代码片段是否合法
if (field.codes.size() % 2 == 1) { if (field.codes.size() % 2 == 1) {
throw new CodeException("代码片段" + this.getClass().getSimpleName() + ":" + sqlData.name + ":" + field.paraName + "为单数"); throw new CodeException("代码片段" + this.getClass().getSimpleName() + ":" + sqlData.getName() + ":" + field.paraName + "为单数");
} }
// 处理代码片段 // 处理代码片段
for (int i = 0; i < field.codes.size(); i = i + 2) { for (int i = 0; i < field.codes.size(); i = i + DaoConst.CODE_UNIT) {
String codeName = field.codes.get(i); String codeName = field.codes.get(i);
String codeValue = field.codes.get(i + 1); String codeValue = field.codes.get(i + 1);
codeValue = codeValue.replaceAll("\\?", "@" + field.paraName + " "); codeValue = codeValue.replaceAll("\\?", "@" + field.paraName + " ");
......
package com.yanzuoguang.dao.impl; package com.yanzuoguang.dao.impl;
import com.yanzuoguang.dao.DaoConst;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -229,7 +231,7 @@ public class SqlData { ...@@ -229,7 +231,7 @@ public class SqlData {
* @return * @return
*/ */
public SqlData removeFieldRemove() { public SqlData removeFieldRemove() {
this.removeField(TableStruct.ISREMOVE_CONTANS); this.removeField(DaoConst.ISREMOVE_CONTANS);
return this; return this;
} }
......
package com.yanzuoguang.dao.impl; package com.yanzuoguang.dao.impl;
import com.yanzuoguang.dao.DaoConst;
/** /**
* 表结构的基本信息 * 表结构的基本信息
* created by yanzu on 2017/5/30. * created by yanzu on 2017/5/30.
...@@ -7,7 +9,7 @@ package com.yanzuoguang.dao.impl; ...@@ -7,7 +9,7 @@ package com.yanzuoguang.dao.impl;
public class TableFieldVo { public class TableFieldVo {
public TableFieldVo() { public TableFieldVo() {
this("id"); this(DaoConst.ID_FIELD);
} }
public TableFieldVo(String name) { public TableFieldVo(String name) {
......
...@@ -83,8 +83,8 @@ public class TableSqlCache { ...@@ -83,8 +83,8 @@ public class TableSqlCache {
*/ */
public SqlData addPageSize(SqlData from, String sql) { public SqlData addPageSize(SqlData from, String sql) {
SqlData to = from.copy(); SqlData to = from.copy();
to.sql = sql; to.setSql(sql);
to.name += TableSqlCache.PAGE_SIZE_TAG; to.setName(to.getName() + TableSqlCache.PAGE_SIZE_TAG);
return this.add(to); return this.add(to);
} }
...@@ -146,14 +146,14 @@ public class TableSqlCache { ...@@ -146,14 +146,14 @@ public class TableSqlCache {
} }
// 2. 判断所有纬度字段是否已经存在 // 2. 判断所有纬度字段是否已经存在
for (String item : tableWhereField.fields) { for (String item : tableWhereField.getFields()) {
String name = item.toLowerCase(); String name = item.toLowerCase();
if (!sqlFieldHas.containsKey(name)) { if (!sqlFieldHas.containsKey(name)) {
throw new CodeException("SQL语句" + item + "不存在纬度" + item); throw new CodeException("SQL语句" + item + "不存在纬度" + item);
} }
sqlFieldWhere.put(name, true); sqlFieldWhere.put(name, true);
} }
for (String item : addField.fields) { for (String item : addField.getFields()) {
String name = item.toLowerCase(); String name = item.toLowerCase();
sqlFieldAdd.put(name, true); sqlFieldAdd.put(name, true);
} }
...@@ -202,7 +202,7 @@ public class TableSqlCache { ...@@ -202,7 +202,7 @@ public class TableSqlCache {
// 处理需要MD5的字段 // 处理需要MD5的字段
addString(map, "{FromField}", "MD5(CONCAT("); addString(map, "{FromField}", "MD5(CONCAT(");
int i = 0; int i = 0;
for (String whereField : tableWhereField.fields) { for (String whereField : tableWhereField.getFields()) {
if (i > 0) { if (i > 0) {
addString(map, "{FromField}", ",':',"); addString(map, "{FromField}", ",':',");
} }
...@@ -239,13 +239,13 @@ public class TableSqlCache { ...@@ -239,13 +239,13 @@ public class TableSqlCache {
// 最终SQL语句处理 // 最终SQL语句处理
selectModel = replaceString(map, selectModel); selectModel = replaceString(map, selectModel);
addString(map, "{SelectSQL}", selectModel); addString(map, "{SelectSQL}", selectModel);
sqlInit.sql = replaceString(map, initModel); sqlInit.setSql(replaceString(map, initModel));
sqlAdd.sql = replaceString(map, addModel); sqlAdd.setSql(replaceString(map, addModel));
this.add(sqlInit); this.add(sqlInit);
this.add(sqlAdd); this.add(sqlAdd);
List<SqlData> ret = new ArrayList<SqlData>(); List<SqlData> ret = new ArrayList<>();
ret.add(sqlInit); ret.add(sqlInit);
ret.add(sqlAdd); ret.add(sqlAdd);
return ret; return ret;
......
...@@ -13,39 +13,11 @@ import java.util.Map; ...@@ -13,39 +13,11 @@ import java.util.Map;
/** /**
* 表结构的基本信息 * 表结构的基本信息
* created by yanzu on 2017/5/30. *
* @author 颜佐光
*/ */
public class TableStruct { public class TableStruct {
/**
* 插入SQL语句模板
*/
private static final String INSERT_MODEL = "INSERT INTO {TABLE}({FIELD}) VALUES({VALUES})";
/**
* 更新SQL语句模板
*/
private static final String UPDATE_MODEL = "UPDATE {TABLE} SET {FIELD} WHERE 1=1 {WHERE}";
/**
* 删除SQL语句模板
*/
private static final String REMOVE_MODEL = "DELETE FROM {TABLE} WHERE 1=1 {WHERE}";
/**
* 加载SQL语句模板
*/
private static final String LOAD_MODEL = "SELECT a.*{FIELD} FROM {TABLE} AS a {INNER} WHERE 1=1 {WHERE}";
/**
* 版本号字段名称
*/
private static final String VERSON = "verson";
/**
* 删除字段名称
*/
private static final String ISREMOVE = "isremove";
/**
* 删除字符串长度变量
*/
public static final String ISREMOVE_CONTANS = "contans____isremove";
/** /**
* 表名称 * 表名称
*/ */
...@@ -103,7 +75,7 @@ public class TableStruct { ...@@ -103,7 +75,7 @@ public class TableStruct {
*/ */
public TableStruct() { public TableStruct() {
this.name = ""; this.name = "";
this.key = new TableFieldVo("id"); this.key = new TableFieldVo(DaoConst.ID_FIELD);
} }
/** /**
...@@ -175,7 +147,7 @@ public class TableStruct { ...@@ -175,7 +147,7 @@ public class TableStruct {
* @return * @return
*/ */
public TableFieldVo getVersion() { public TableFieldVo getVersion() {
return this.getField(VERSON); return this.getField(DaoConst.VERSON);
} }
/** /**
...@@ -184,7 +156,7 @@ public class TableStruct { ...@@ -184,7 +156,7 @@ public class TableStruct {
* @return * @return
*/ */
private TableFieldVo getRemove() { private TableFieldVo getRemove() {
return this.getField(ISREMOVE); return this.getField(DaoConst.ISREMOVE);
} }
/** /**
...@@ -193,7 +165,7 @@ public class TableStruct { ...@@ -193,7 +165,7 @@ public class TableStruct {
* @return * @return
*/ */
public void init(TableSqlCache table) { public void init(TableSqlCache table) {
table.table = this; table.setTable(this);
if (!StringHelper.isEmpty(this.name)) { if (!StringHelper.isEmpty(this.name)) {
table.add(releaseSqlCreate(), releaseSqlUpdate(), releaseSqlRemove(), releaseSqlLoad()); table.add(releaseSqlCreate(), releaseSqlUpdate(), releaseSqlRemove(), releaseSqlLoad());
} }
...@@ -206,15 +178,15 @@ public class TableStruct { ...@@ -206,15 +178,15 @@ public class TableStruct {
*/ */
private SqlData releaseSqlCreate() { private SqlData releaseSqlCreate() {
// 生成添加的SQL语句 // 生成添加的SQL语句
String text = INSERT_MODEL.replace("{TABLE}", this.name); String text = DaoConst.INSERT_MODEL.replace(DaoConst.TABLE_CODE, this.name);
SqlData sql = new SqlData(DaoConst.CREATE, text); SqlData sql = new SqlData(DaoConst.CREATE, text);
String flag = ""; String flag = "";
if (this.getKeyType() == String.class) { if (this.getKeyType() == String.class) {
sql.addParaConst(this.key.inputName, "{FIELD}", this.key.name, "{VALUES}", "?"); sql.addParaConst(this.key.inputName, DaoConst.FIELD_CODE, this.key.name, DaoConst.VALUES_CODE, "?");
flag = ","; flag = ",";
} }
for (TableFieldVo field : this.fields) { for (TableFieldVo field : this.fields) {
sql.addParaConst(field.inputName, "{FIELD}", flag + field.name, "{VALUES}", flag + "?"); sql.addParaConst(field.inputName, DaoConst.FIELD_CODE, flag + field.name, DaoConst.VALUES_CODE, flag + "?");
flag = ","; flag = ",";
} }
return sql; return sql;
...@@ -227,26 +199,26 @@ public class TableStruct { ...@@ -227,26 +199,26 @@ public class TableStruct {
*/ */
private SqlData releaseSqlUpdate() { private SqlData releaseSqlUpdate() {
// 生成添加的SQL语句 // 生成添加的SQL语句
String text = UPDATE_MODEL.replace("{TABLE}", this.name); String text = DaoConst.UPDATE_MODEL.replace(DaoConst.TABLE_CODE, this.name);
SqlData sql = new SqlData(DaoConst.UPDATE, text); SqlData sql = new SqlData(DaoConst.UPDATE, text);
TableFieldVo removeField = this.getRemove(); TableFieldVo removeField = this.getRemove();
TableFieldVo versionField = this.getVersion(); TableFieldVo versionField = this.getVersion();
sql.addParaConst(this.key.inputName, sql.addParaConst(this.key.inputName,
"{FIELD}", "" + this.key.name + "=" + this.key.name, DaoConst.FIELD_CODE, "" + this.key.name + "=" + this.key.name,
"{WHERE}", " AND " + this.key.name + "=?"); DaoConst.WHERE_CODE, " AND " + this.key.name + "=?");
for (TableFieldVo field : this.fields) { for (TableFieldVo field : this.fields) {
if (field == removeField || field == versionField) { if (field == removeField || field == versionField) {
continue; continue;
} }
sql.addParaConst(field.inputName, "{FIELD}", "," + field.name + "=?"); sql.addParaConst(field.inputName, DaoConst.FIELD_CODE, "," + field.name + "=?");
} }
if (removeField != null) { if (removeField != null) {
sql.addParaConst(removeField.inputName, "{WHERE}", " AND " + removeField.name + "=0"); sql.addParaConst(removeField.inputName, DaoConst.WHERE_CODE, " AND " + removeField.name + "=0");
} }
if (versionField != null) { if (versionField != null) {
sql.addParaConst(versionField.inputName, sql.addParaConst(versionField.inputName,
"{FIELD}", "," + versionField.name + "=1+" + versionField.name, DaoConst.FIELD_CODE, "," + versionField.name + "=1+" + versionField.name,
"{WHERE}", " AND " + versionField.name + "=?"); DaoConst.WHERE_CODE, " AND " + versionField.name + "=?");
} }
return sql; return sql;
} }
...@@ -261,16 +233,16 @@ public class TableStruct { ...@@ -261,16 +233,16 @@ public class TableStruct {
TableFieldVo versionField = this.getVersion(); TableFieldVo versionField = this.getVersion();
if (removeField != null) { if (removeField != null) {
// 生成添加的SQL语句 // 生成添加的SQL语句
String text = UPDATE_MODEL.replace("{TABLE}", this.name); String text = DaoConst.UPDATE_MODEL.replace(DaoConst.TABLE_CODE, this.name);
SqlData sql = new SqlData(DaoConst.REMOVE, text); SqlData sql = new SqlData(DaoConst.REMOVE, text);
sql.addCode("{FIELD}", removeField.name + "=1"); sql.addCode(DaoConst.FIELD_CODE, removeField.name + "=1");
if (versionField != null) { if (versionField != null) {
sql.addCode("{FIELD}", "," + versionField.name + "=1+" + versionField.name); sql.addCode(DaoConst.FIELD_CODE, "," + versionField.name + "=1+" + versionField.name);
} }
addWhereField(sql, ""); addWhereField(sql, "");
return sql; return sql;
} else { } else {
String text = REMOVE_MODEL.replace("{TABLE}", this.name); String text = DaoConst.REMOVE_MODEL.replace(DaoConst.TABLE_CODE, this.name);
SqlData sql = new SqlData(DaoConst.REMOVE, text); SqlData sql = new SqlData(DaoConst.REMOVE, text);
addWhereField(sql, ""); addWhereField(sql, "");
return sql; return sql;
...@@ -284,7 +256,7 @@ public class TableStruct { ...@@ -284,7 +256,7 @@ public class TableStruct {
*/ */
private SqlData releaseSqlLoad() { private SqlData releaseSqlLoad() {
// 生成添加的SQL语句 // 生成添加的SQL语句
String text = LOAD_MODEL.replace("{TABLE}", this.name); String text = DaoConst.LOAD_MODEL.replace(DaoConst.TABLE_CODE, this.name);
SqlData sql = new SqlData(DaoConst.LOAD, text); SqlData sql = new SqlData(DaoConst.LOAD, text);
addWhereField(sql, "a."); addWhereField(sql, "a.");
return sql; return sql;
...@@ -302,7 +274,7 @@ public class TableStruct { ...@@ -302,7 +274,7 @@ public class TableStruct {
sql.add(field.inputName, " AND " + tag + field.name + "=?"); sql.add(field.inputName, " AND " + tag + field.name + "=?");
} }
if (removeField != null) { if (removeField != null) {
sql.addConst(ISREMOVE_CONTANS, " AND " + tag + removeField.name + "=0"); sql.addConst(DaoConst.ISREMOVE_CONTANS, " AND " + tag + removeField.name + "=0");
} }
} }
...@@ -314,8 +286,8 @@ public class TableStruct { ...@@ -314,8 +286,8 @@ public class TableStruct {
* @param updateFields 需要增加的值的字段 * @param updateFields 需要增加的值的字段
*/ */
public void addGroupSql(TableSqlCache sqlTableData, TableFieldString whereFields, TableFieldString updateFields) { public void addGroupSql(TableSqlCache sqlTableData, TableFieldString whereFields, TableFieldString updateFields) {
sqlTableData.add(this.releaseSqlWhere(DaoConst.GROUP_QUERY, LOAD_MODEL, whereFields)); sqlTableData.add(this.releaseSqlWhere(DaoConst.GROUP_QUERY, DaoConst.LOAD_MODEL, whereFields));
sqlTableData.add(this.releaseSql(DaoConst.GROUP_ADD, UPDATE_MODEL, "{FIELD}={FIELD}+?", updateFields, new TableFieldString(this.key.name))); sqlTableData.add(this.releaseSql(DaoConst.GROUP_ADD, DaoConst.UPDATE_MODEL, "{FIELD}={FIELD}+?", updateFields, new TableFieldString(this.key.name)));
} }
/** /**
...@@ -346,16 +318,16 @@ public class TableStruct { ...@@ -346,16 +318,16 @@ public class TableStruct {
// 生成添加的SQL语句 // 生成添加的SQL语句
StringBuilder sbField = new StringBuilder(); StringBuilder sbField = new StringBuilder();
for (String field : valueFields.fields) { for (String field : valueFields.getFields()) {
if (sbField.length() > 0) { if (sbField.length() > 0) {
sbField.append(","); sbField.append(",");
} }
sbField.append(valueModel.replace("{FIELD}", field)); sbField.append(valueModel.replace(DaoConst.FIELD_CODE, field));
paraFields.add(field); paraFields.add(field);
} }
StringBuilder sbWhere = new StringBuilder(); StringBuilder sbWhere = new StringBuilder();
for (String field : whereFields.fields) { for (String field : whereFields.getFields()) {
sbWhere.append(" AND "); sbWhere.append(" AND ");
sbWhere.append(field); sbWhere.append(field);
sbWhere.append("=?"); sbWhere.append("=?");
...@@ -365,7 +337,7 @@ public class TableStruct { ...@@ -365,7 +337,7 @@ public class TableStruct {
String[] fields = new String[paraFields.size()]; String[] fields = new String[paraFields.size()];
fields = paraFields.toArray(fields); fields = paraFields.toArray(fields);
// 生成修改的SQL语句 // 生成修改的SQL语句
String sql = model.replace("{TABLE}", this.name).replace("{FIELD}", sbField.toString()).replace("{WHERE}", sbWhere.toString()); String sql = model.replace(DaoConst.TABLE_CODE, this.name).replace(DaoConst.FIELD_CODE, sbField.toString()).replace(DaoConst.WHERE_CODE, sbWhere.toString());
SqlData ret = new SqlData(name, sql, fields); SqlData ret = new SqlData(name, sql, fields);
return ret; return ret;
} }
...@@ -378,7 +350,7 @@ public class TableStruct { ...@@ -378,7 +350,7 @@ public class TableStruct {
* @param whereFields * @param whereFields
*/ */
public void addSaveWithSql(TableSqlCache tableStruct, String sqlName, TableFieldString whereFields) { public void addSaveWithSql(TableSqlCache tableStruct, String sqlName, TableFieldString whereFields) {
tableStruct.add(this.releaseSqlWhere(sqlName, LOAD_MODEL, whereFields)); tableStruct.add(this.releaseSqlWhere(sqlName, DaoConst.LOAD_MODEL, whereFields));
} }
...@@ -390,14 +362,14 @@ public class TableStruct { ...@@ -390,14 +362,14 @@ public class TableStruct {
* @param fields * @param fields
*/ */
public void addExist(TableSqlCache sqlTableData, String sqlName, String[] fields) { public void addExist(TableSqlCache sqlTableData, String sqlName, String[] fields) {
String text = LOAD_MODEL.replace("{TABLE}", this.name); String text = DaoConst.LOAD_MODEL.replace(DaoConst.TABLE_CODE, this.name);
SqlData sql = new SqlData(sqlName, text); SqlData sql = new SqlData(sqlName, text);
sql.addPara(this.key.inputName, "{WHERE}", " AND a." + this.key.name + "<>?"); sql.addPara(this.key.inputName, DaoConst.WHERE_CODE, " AND a." + this.key.name + "<>?");
for (String field : fields) { for (String field : fields) {
sql.addParaConst(field, "{WHERE}", " AND a." + field + "=?"); sql.addParaConst(field, DaoConst.WHERE_CODE, " AND a." + field + "=?");
} }
if (getRemove() != null) { if (getRemove() != null) {
sql.addParaConst(ISREMOVE_CONTANS, "{WHERE}", " AND " + "a." + ISREMOVE + "=0"); sql.addParaConst(DaoConst.ISREMOVE_CONTANS, DaoConst.WHERE_CODE, " AND a." + DaoConst.ISREMOVE + "=0");
} }
sqlTableData.add(sql); sqlTableData.add(sql);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment