/**
* 通用的 DAO
* @author Admin
*
*/
public class BaseDao {
private Class<?> cls;
private Map<String,String> map = new HashMap<>();
public BaseDao() {
Type sType = getClass().getGenericSuperclass();
Type[] generics = ((ParameterizedType) sType).getActualTypeArguments();
cls = (Class<?>) (generics[0]);
getId();
}
/**
* 通用的更新的方法
* @param sql 要执行的SQL语句
* @param parameters 占位符的参数
* @return 受影响的行数
*/
public int update(String sql,Object...parameters) {
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
int i = 0;
try {
con = JDBCUtils.getConnection();
st = con.prepareStatement(sql);
setParameters(st,parameters);
i = st.executeUpdate();
}catch(Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.close(rs, st, con);
}
return i;
}
/**
* 获取单个对象
* @param sql 要执行的SQL语句
* @param parameters 占位符的参数
* @return 封装成的一个对象,如果没有记录返回null
*/
public E get(String sql,Object...parameters) {
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
E obj = null;
try {
con = JDBCUtils.getConnection();
st = con.prepareStatement(sql);
setParameters(st,parameters);
rs = st.executeQuery();
while(rs.next()) {
obj = oneRowToObject(rs);
}
}catch(Exception e) {
e.printStackTrace();
}finally {
JDBCUtils.close(rs, st, con);
}
return obj;
}/**
* 获取多个对象封装成一个集合(列名<->属性名)
* @param sql 查询SQL
* @param parameters 占位符的参数
* @return 封装成的一个对象集合,如果没有记录返回一个空集合
*/
public List<E> list(String sq