用反射实现通用Dao
public class MySession {/** * 用反射实现的查找 */public Object find(Class clazz,Object id){try {//通过反射获取clazz的类名QueryRunner query = new QueryRunner();String className = clazz.getName();String[] split = className.split("\\.");String tableName = split[split.length - 1];String sql = "select * from " + tableName + " where id=?";//Object c = query.query(sql, new BeanHandler(clazz), new Object[] { id });System.out.println(sql);return null;} catch (Exception e) {throw new RuntimeException(e);}}/* * 实现删除 */public void delete(Class clazz,Object id){try {QueryRunner runner = new QueryRunner();String className = clazz.getName();String[] split = className.split("\\.");String tableName = split[split.length - 1];String sql = "delete from " + tableName + "where id=?";//runner.update(sql, new Object[] { id });} catch (Exception e) {}}/** * 实现增加 */public void add(Class clazz){//首先获得表名QueryRunner runner = new QueryRunner();String className = clazz.getName();String[] split = className.split("\\.");String tableName = split[split.length - 1];//通过反射获得字段Field[] fields = clazz.getDeclaredFields();StringBuilder sb = new StringBuilder("insert into ");sb.append(tableName+" (");for(Field f:fields){sb.append(f.getName()+",");}sb.deleteCharAt(sb.length()-1);sb.append(")");sb.append(" values(");for(int i=0;i<fields.length;i++){sb.append("?,");}sb.deleteCharAt(sb.length()-1);sb.append(")");String sql = sb.toString();System.out.println("--------add---------\n"+sql);}/* * 修改同类增加 */
?
for (Field f : fields) {