<Table name="user" primaryKey="user_id" primaryField="userId"> <Column name="username" field="username" type="2" /> <Column name="password" field="password" type="2" /> <Column name="salt" field="salt" type="1" /> <Column name="reg_time" field="registerTime" type="3" /> <Column name="last_login_time" field="lastLoginTime" type="3" /> </Table>
public class Table<T> {
public class TableField {
public static final int TYPE_INTEGER = 1;
public static final int TYPE_STRING = 2;
public static final int TYPE_TIMESTAMP = 3;
public String columnName = "";
public String fieldName = "";
public int type = 0;
}
private String tableName = "";
private TableField primaryField = new TableField();
private ArrayList<TableField> tableFields = new ArrayList<TableField>();
private String selectAllSql = "";
private String selectSql = "";
private String insertSql = "";
private String updateSql = "";
private String deleteSql = "";
...
private String generateUpdateSql() {
String sql = "UPDATE " + tableName + " SET ";
int size = tableFields.size();
for (int index = 0; index < size; ++index) {
TableField tableField = tableFields.get(index);
String conjunction = index == 0 ? "" : ",";
String colSql = tableField.columnName + " = ?";
sql = sql + conjunction + colSql;
}
sql = sql + " WHERE " + primaryField.columnName + "=?";
return sql;
}
public class Record<T> {
private Table<T> table = null;
private T object = null;
...
public class UserData implements Serializable {
// 用户ID
public int userId = 0;
// 用户名
public String username = "";
// 密码
public String password = "";
...
public int setPrimaryParams(int start, PreparedStatement pst) throws Exception {
Table<T>.TableField primaryField = table.getPrimaryField();
Object value = getFieldValue(primaryField);
value = toDBValue(primaryField, value);
pst.setObject(start, value);
return start + 1;
}
public int setNormalParams(int start, PreparedStatement pst) throws Exception {
ArrayList<Table<T>.TableField> normalFields = table.getNoramlFields();
final int size = normalFields.size();
for (int index = 0; index < size; ++index) {
Table<T>.TableField tableField = normalFields.get(index);
Object value = getFieldValue(tableField);
value = toDBValue(tableField, value);
pst.setObject(start + index, value);
}
return start + size;
}
private Object getFieldValue(Table<T>.TableField tableField) throws Exception {
Field field = object.getClass().getDeclaredField(tableField.fieldName);
return field.get(object);
}
private Object toDBValue(Table<T>.TableField tableField, Object value) {
if (tableField.type == TableField.TYPE_TIMESTAMP) {
value = new Timestamp((long) value);
}
return value;
}
public void setUpdateParams(PreparedStatement pst) throws Exception {
final int start = setNormalParams(1, pst);
setPrimaryParams(start, pst);
}
private static final Table<UserData> udTable = new Table<UserData>();
...
udTable.load("user.xml");
...
public static boolean updateUserData(UserData userData) {
boolean result = false;
Record<UserData> record = udTable.createRecord();
record.setObject(userData);
PreparedStatement pst = null;
try {
String sql = udTable.getUpdateSql();
pst = DbUtil.openConnection().prepareStatement(sql);
record.setUpdateParams(pst);
result = pst.executeUpdate() > 0;
} catch (Exception e) {
e.printStackTrace();
} finally {
DbUtil.closeConnection(null, pst);
}
return result;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有