|
|
|
@ -123,7 +123,7 @@ public class ObjectClient extends Client {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public <T> int delete(Class<T> poClass, String... wheres) throws SQLException, ClassNotFoundException {
|
|
|
|
|
public <T> int delete(Class<T> poClass, Where where) throws SQLException, ClassNotFoundException {
|
|
|
|
|
try {
|
|
|
|
|
Class aClass = classMap.get(poClass.getName());
|
|
|
|
|
if (aClass == null) {
|
|
|
|
@ -132,16 +132,9 @@ public class ObjectClient extends Client {
|
|
|
|
|
StringBuffer sql = new StringBuffer();
|
|
|
|
|
sql.append("DELETE FROM ");
|
|
|
|
|
sql.append(aClass.getSimpleName());
|
|
|
|
|
|
|
|
|
|
if (wheres.length > 0) {
|
|
|
|
|
sql.append(" WHERE ");
|
|
|
|
|
for (int i = 0; i < wheres.length; i++) {
|
|
|
|
|
String where = wheres[i];
|
|
|
|
|
sql.append(where);
|
|
|
|
|
sql.append(i != wheres.length - 1 ? " AND " : "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return executeUpdate(sql.toString());
|
|
|
|
|
sql.append(where.getSql());
|
|
|
|
|
System.out.println("SQL ==> " + sql.toString());
|
|
|
|
|
return executeUpdate(sql.toString(), where.getArgs());
|
|
|
|
|
}
|
|
|
|
|
} finally {
|
|
|
|
|
destroyed();
|
|
|
|
@ -149,7 +142,7 @@ public class ObjectClient extends Client {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public <T> int update(Class<T> poClass, T po, String... wheres) throws SQLException, ClassNotFoundException {
|
|
|
|
|
public <T> int update(Class<T> poClass, T po, Where where) throws SQLException, ClassNotFoundException {
|
|
|
|
|
try {
|
|
|
|
|
Class aClass = classMap.get(poClass.getName());
|
|
|
|
|
if (aClass == null) {
|
|
|
|
@ -175,17 +168,11 @@ public class ObjectClient extends Client {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (wheres.length > 0) {
|
|
|
|
|
sql.append(" WHERE ");
|
|
|
|
|
for (int i = 0; i < wheres.length; i++) {
|
|
|
|
|
String where = wheres[i];
|
|
|
|
|
sql.append(where);
|
|
|
|
|
sql.append(i != wheres.length - 1 ? " AND " : "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 条件
|
|
|
|
|
sql.append(where.getSql());
|
|
|
|
|
|
|
|
|
|
System.out.println("SQL ==> " + sql.toString());
|
|
|
|
|
return executeUpdate(sql.toString(), values);
|
|
|
|
|
return executeUpdate(sql.toString(), concat(values, where.getArgs()));
|
|
|
|
|
}
|
|
|
|
|
} catch (IllegalAccessException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
@ -195,7 +182,7 @@ public class ObjectClient extends Client {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public <T> List<T> select(Class<T> poClass, int pageNumber, int pageSize, T po, String... wheres) throws SQLException, ClassNotFoundException {
|
|
|
|
|
public <T> List<T> select(Class<T> poClass, Where where, int pageNumber, int pageSize) throws SQLException, ClassNotFoundException {
|
|
|
|
|
ArrayList<T> list = new ArrayList<>();
|
|
|
|
|
try {
|
|
|
|
|
Class aClass = classMap.get(poClass.getName());
|
|
|
|
@ -207,8 +194,6 @@ public class ObjectClient extends Client {
|
|
|
|
|
|
|
|
|
|
//获取字段列表
|
|
|
|
|
List<Field> fs = getFields(poClass);
|
|
|
|
|
List<String> poWhere = new ArrayList();
|
|
|
|
|
List<Object> args = new ArrayList();
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < fs.size(); i++) {
|
|
|
|
|
Field f = fs.get(i);
|
|
|
|
@ -216,28 +201,13 @@ public class ObjectClient extends Client {
|
|
|
|
|
if (i != fs.size() - 1) {
|
|
|
|
|
sql.append(",");
|
|
|
|
|
}
|
|
|
|
|
if (po != null) {
|
|
|
|
|
if (f.get(po) != null) {
|
|
|
|
|
poWhere.add(" " + f.getName().toUpperCase() + " = ? ");
|
|
|
|
|
args.add(f.get(po));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sql.append(" FROM ");
|
|
|
|
|
sql.append(aClass.getSimpleName());
|
|
|
|
|
|
|
|
|
|
poWhere.addAll(Arrays.asList(wheres));
|
|
|
|
|
|
|
|
|
|
//条件参数
|
|
|
|
|
if (poWhere.size() + wheres.length > 0) {
|
|
|
|
|
sql.append(" WHERE ");
|
|
|
|
|
for (int i = 0; i < poWhere.size(); i++) {
|
|
|
|
|
String where = wheres[i];
|
|
|
|
|
sql.append(where);
|
|
|
|
|
sql.append(i != wheres.length - 1 ? " AND " : "");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 条件
|
|
|
|
|
sql.append(where.getSql());
|
|
|
|
|
|
|
|
|
|
//分页参数
|
|
|
|
|
if (pageSize > 0) {
|
|
|
|
@ -245,10 +215,8 @@ public class ObjectClient extends Client {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
System.out.println("SQL ==> " + sql.toString());
|
|
|
|
|
list.addAll(executeQuery(poClass, sql.toString(), args));
|
|
|
|
|
list.addAll(executeQuery(poClass, sql.toString(), where.getArgs()));
|
|
|
|
|
}
|
|
|
|
|
} catch (IllegalAccessException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
} finally {
|
|
|
|
|
destroyed();
|
|
|
|
|
}
|
|
|
|
@ -339,4 +307,11 @@ public class ObjectClient extends Client {
|
|
|
|
|
}
|
|
|
|
|
return fs;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private <T> T[] concat(T[] arr1, T[] arr2) {
|
|
|
|
|
List<T> temp = new ArrayList<>();
|
|
|
|
|
temp.addAll(Arrays.asList(arr1));
|
|
|
|
|
temp.addAll(Arrays.asList(arr2));
|
|
|
|
|
return (T[]) temp.toArray();
|
|
|
|
|
}
|
|
|
|
|
}
|