package com.accp.testProp;
import java.sql.*;
import java.util.Properties;
import java.lang.reflect.Field;
import java.util.Vector;
public class WLTemplate {
public static boolean save(Object obj) {
boolean isSuccess = false;
Connection conn = null;
PreparedStatement pstmt = null;
String left_sql = "INSERT INTO ";
String right_sql = ") VALUES(";
try {
conn = DBConnection.getConnection();
String tableName = obj.getClass().getSimpleName();
left_sql += tableName + "(";
Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String field = fields[i].getName();
String method = "get" + field.substring(0, 1).toUpperCase() +
field.substring(1, field.length());
String value = (String) obj.getClass().getMethod(method).invoke(obj);
if (value != null && !value.equals("")) {
left_sql += field + ",";
right_sql += "'" + value + "',";
}
}
left_sql = left_sql.substring(0, left_sql.length() - 1);
right_sql = right_sql.substring(0, right_sql.length() - 1) + ")";
// System.out.println(left_sql + right_sql);
pstmt = conn.prepareStatement(left_sql + right_sql);
int temp = pstmt.executeUpdate();
if (temp != 0) {
isSuccess = true;
}
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
DBConnection.close(conn, pstmt, null);
}
return isSuccess;
}
public static boolean delete(Object obj) {
boolean isSuccess = false;
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "DELETE FROM ";
try {
conn = DBConnection.getConnection();
String tableName = obj.getClass().getSimpleName();
sql += tableName + " WHERE ";
Field[] fields = obj.getClass().getDeclaredFields();
String field = fields[0].getName();
String method = "get" + field.substring(0, 1).toUpperCase() +
field.substring(1, field.length());
String value = (String) obj.getClass().getMethod(method).invoke(obj);
sql += field + " = '" + value + "'";
// System.out.println(sql);
pstmt = conn.prepareStatement(sql);
int temp = pstmt.executeUpdate();
if (temp != 0) {
isSuccess = true;
}
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
DBConnection.close(conn, pstmt, null);
}
return isSuccess;
}
public static boolean update(Object obj) {
boolean isSuccess = false;
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "UPDATE ";
try {
conn = DBConnection.getConnection();
String tableName = obj.getClass().getSimpleName();
sql += tableName + " SET ";
Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 1; i < fields.length; i++) {
String field = fields[i].getName();
String method = "get" + field.substring(0, 1).toUpperCase() +
field.substring(1, field.length());
String value = (String) obj.getClass().getMethod(method).invoke(obj);
if (value != null && !value.equals("")) {
sql += field + " = '" + value + "', ";
}
}
sql = sql.trim();
sql = sql.substring(0, sql.length() - 1);
String id = fields[0].getName();
String id_method = "get" + id.substring(0, 1).toUpperCase() +
id.substring(1, id.length());
String id_value = (String) obj.getClass().getMethod(id_method).invoke(obj);
sql += " WHERE " + id + " = '" + id_value + "'";
// System.out.println(sql);
pstmt = conn.prepareStatement(sql);
int temp = pstmt.executeUpdate();
if (temp != 0) {
isSuccess = true;
}
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
DBConnection.close(conn, pstmt, null);
}
return isSuccess;
}
public static Object findByPrimaryKey(Object obj) {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
Object return_obj = null;
String sql = "SELECT ";
try {
conn = DBConnection.getConnection();
Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String field = fields[i].getName();
sql += field + ",";
}
sql = sql.substring(0, sql.length() - 1);
String tableName = obj.getClass().getSimpleName();
sql += " FROM " + tableName;
String id = fields[0].getName();
String id_method = "get" + id.substring(0, 1).toUpperCase() +
id.substring(1, id.length());
String id_value = (String) obj.getClass().getMethod(id_method).invoke(obj);
sql += " WHERE " + id + " = '" + id_value + "'";
pstmt = conn.prepareStatement(sql);
// System.out.println(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
String classname = obj.getClass().getName();
Class c = Class.forName(classname);
return_obj = c.newInstance();
for (int i = 0; i < fields.length; i++) {
String field = fields[i].getName();
Class p = Class.forName("java.lang.String");
String method = "set" + field.substring(0, 1).toUpperCase() +
field.substring(1, field.length());
obj.getClass().getMethod(method, p).invoke(return_obj,
rs.getString(i + 1));
}
}
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
DBConnection.close(conn, pstmt, rs);
}
return return_obj;
}
public static Vector findAll(Object obj) {
Vector objs = new Vector();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "SELECT ";
try {
conn = DBConnection.getConnection();
Field[] fields = obj.getClass().getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
String field = fields[i].getName();
sql += field + ",";
}
sql = sql.substring(0, sql.length() - 1);
String tableName = obj.getClass().getSimpleName();
sql += " FROM " + tableName + " WHERE ";
for (int i = 1; i < fields.length; i++) {
String check = fields[i].getName();
String check_method = "get" + check.substring(0, 1).toUpperCase() +
check.substring(1, check.length());
String check_value = (String) obj.getClass().getMethod(check_method).
invoke(obj);
if(check_value == null){
check_value = "";
}
sql += check + " LIKE '%" + check_value.trim() + "%' AND ";
}
sql = sql.trim();
sql = sql.substring(0, sql.length() - 3);
pstmt = conn.prepareStatement(sql);
// System.out.println(sql);
rs = pstmt.executeQuery();
while (rs.next()) {
String classname = obj.getClass().getName();
Class c = Class.forName(classname);
Object return_obj = c.newInstance();
for (int i = 0; i < fields.length; i++) {
String field = fields[i].getName();
Class p = Class.forName("java.lang.String");
String method = "set" + field.substring(0, 1).toUpperCase() +
field.substring(1, field.length());
obj.getClass().getMethod(method, p).invoke(return_obj,
rs.getString(i + 1));
}
objs.add(return_obj);
}
}
catch (Exception ex) {
ex.printStackTrace();
}
finally {
DBConnection.close(conn, pstmt, rs);
}
return objs;
}
public static boolean saveOrUpdate(Object obj){
boolean isSuccess = false;
try {
if(findByPrimaryKey(obj) == null){
isSuccess = save(
评论3
最新资源