版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons)
查询通用Dao
public static List<Object> queryall(Object o) throws Exception{
List<Object> lp=new ArrayList<Object>();
Connection conn = BaseDao.getcon();
Class c=o.getClass();
Field[] f1 = c.getDeclaredFields();
StringBuffer sb=new StringBuffer();
sb.append("select * from "+c.getSimpleName());
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sb.toString());
rs = pstmt.executeQuery();
ResultSetMetaData metaData = rs.getMetaData();
int count = metaData.getColumnCount();
while(rs.next()){
Object obj = cs.newInstance();
for(int i=0;i<f1.length;i++) {
for(int j=0;j<count;j++) {
String lm = metaData.getColumnName(j+1);
if(f1[i].getName().toUpperCase().equals(lm.toUpperCase())) {
f1[i].setAccessible(true);
f1[i].set(obj, rs.getObject(lm));
}
}
}
lp.add(obj);
}
}catch (SQLException e) {
e.printStackTrace();
}
return lp;
}
增加通用Dao
public static int insert(Object obj){
int count=0;
Connection con = BaseDao.getcon();
Class c=obj.getClass();
Field[] f1 = c.getDeclaredFields();
Method[] m1=c.getDeclaredMethods();
StringBuffer sb=new StringBuffer();
sb.append("insert into "+c.getSimpleName()+"(");
for(int i=1;i<f1.length;i++) {
if(i<f1.length-1) {
sb.append(f1[i].getName()+", ");
}else {
sb.append(f1[i].getName());
}
}
sb.append(") values(");
for(int i=1;i<f1.length;i++) {
if(i<f1.length-1) {
sb.append("?,");
}else {
sb.append("?)");
}
}
Field.setAccessible(f1, true);
PreparedStatement stm=null;
try {
stm=con.prepareStatement(sb.toString());
for(int i=0;i<f1.length;i++) {
if(i<f1.length-1) {
stm.setObject(i+1, f1[i+1].get(obj));
}else {
}
}
count=stm.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
BaseDao.closeall(null, stm, con);
}
return count;
}
删除通用Dao
public static int del(Object obj) throws Exception{
int count=0;
Connection con = BaseDao.getcon();
Class c=obj.getClass();
Field[] f1 = c.getDeclaredFields();
Field.setAccessible(f1, true);
StringBuffer sb=new StringBuffer();
String sql="delete from "+c.getSimpleName()+" where "+f1[0].getName()+"=?";
PreparedStatement stm=null;
try {
stm=con.prepareStatement(sql);
stm.setObject(1, f1[0].get(obj));
count=stm.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
BaseDao.closeall(null, stm, con);
}
return count;
}
修改通用Dao
public static int update(Object obj) throws Exception{
int count=0;
Connection con = BaseDao.getcon();
PreparedStatement stm=null;
Class c=obj.getClass();
Field[] f1 = c.getDeclaredFields();
StringBuffer sb=new StringBuffer();
sb.append("update "+c.getSimpleName()+" set ");
for(int i=1;i<f1.length;i++) {
if(i<f1.length-1) {
sb.append(f1[i].getName()+"=?, ");
}else {
sb.append(f1[i].getName()+"=?");
}
}
sb.append(" where "+f1[0].getName()+"=?");
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
stm=con.prepareStatement(sb.toString());
System.out.println(sb);
for(int i=0;i<f1.length;i++) {
f1[i].setAccessible(true);
if(i<f1.length-1) {
System.out.println(i+1);
f1[i+1].setAccessible(true);
stm.setObject(i+1, f1[i+1].get(obj));
}else {
stm.setObject(i+1, f1[0].get(obj));
}
}
count=stm.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
BaseDao.closeall(null, stm, con);
}
return count;
}
```