增删查改通用代码
public static int add(Object obj) {
int row=0;
Connection con = BaseDao.quedaoall();
Class c = obj.getClass();
Field[] fields = c.getDeclaredFields();
Field.setAccessible(fields, true);
StringBuffer sb=new StringBuffer();
sb.append("insert into "+c.getSimpleName()+" (");
for (int i = 1; i < fields.length; i++) {
sb.append(fields[i].getName());
if (i<fields.length-1) {
sb.append(" ,");
}
}
sb.append(") values (");
for (int i = 1; i < fields.length; i++) {
sb.append("?");
if (i<fields.length-1) {
sb.append(" ,");
}
}
sb.append(")");
PreparedStatement pstm=null;
System.out.println(sb.toString());
try {
pstm = con.prepareStatement(sb.toString());
for (int i = 1; i < fields.length; i++) {
pstm.setObject(i, fields[i].get(obj));
}
row = pstm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
BaseDao.closeall(null, pstm, con);
}
return row;
}
public static int delete(Object obj) {
int row=0;
Connection con = BaseDao.quedaoall();
Class c = obj.getClass();
Field[] fields = c.getDeclaredFields();
Field.setAccessible(fields, true);
StringBuffer sb=new StringBuffer();
sb.append("delete from "+c.getSimpleName());
sb.append(" where "+fields[0].getName()+"= ?");
//System.out.println(sb.toString());
PreparedStatement pstm=null;
try {
pstm = con.prepareStatement(sb.toString());
pstm.setObject(1, fields[0].get(obj));
row = pstm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
BaseDao.closeall(null, pstm, con);
}
return row;
}
public static List<Object> select(Object obj) {
List<Object> list=new ArrayList<Object>();
Connection con = BaseDao.quedaoall();
Class c = obj.getClass();
Field[] fields = c.getDeclaredFields();
Field.setAccessible(fields, true);
StringBuffer sb=new StringBuffer();
sb.append("select * from "+c.getSimpleName());
//System.out.println(sb.toString());
PreparedStatement pstm=null;
ResultSet rs=null;
try {
pstm = con.prepareStatement(sb.toString());
rs= pstm.executeQuery();
while(rs.next()) {
Object object= c.newInstance();
for (int i = 0; i < fields.length; i++) {
Object object2 = rs.getObject(fields[i].getName());
//如果是长整形就转型
if ("Long".equals(object2.getClass().getSimpleName())) {
String a=((Long)object2).toString();
int b=new Integer(a);
fields[i].set(object, b);
continue;
}
fields[i].set(object, rs.getObject(fields[i].getName()));
}
list.add(object);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
BaseDao.closeall(rs, pstm, con);
}
return list;
}
public static int update(Object obj) {
int row=0;
Connection con = BaseDao.quedaoall();
Class c = obj.getClass();
Field[] fields = c.getDeclaredFields();
Field.setAccessible(fields, true);
StringBuffer sb=new StringBuffer();
sb.append("update "+c.getSimpleName()+" set ");
for (int i = 1; i < fields.length; i++) {
sb.append(fields[i].getName()+" = ?");
if (i<fields.length-1) {
sb.append(" ,");
}
}
sb.append(" where "+fields[0].getName()+"= ?");
System.out.println(sb.toString());
PreparedStatement pstm=null;
try {
pstm = con.prepareStatement(sb.toString());
for (int i = 1; i < fields.length; i++) {
pstm.setObject(i, fields[i].get(obj));
}
pstm.setObject(fields.length, fields[0].get(obj));
row = pstm.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}finally {
BaseDao.closeall(null, pstm, con);
}
return row;
}