DBUtils工具类封装
public class JDBCUtils {
public static Connection getConnection() {
try {
Properties prop=new Properties();
prop.load(new FileInputStream("E:/develop/Java/JavaProject/jdbc/jdbc-demo/src/druid.properties"));
DataSource dataSource= DruidDataSourceFactory.createDataSource(prop);
Connection conn=dataSource.getConnection();
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void closeResoure(Connection conn,Statement stmt) {
DbUtils.closeQuietly(stmt);
DbUtils.closeQuietly(conn);
}
public static void closeResoure(Connection conn,Statement stmt,ResultSet rs) {
DbUtils.closeQuietly(rs);
DbUtils.closeQuietly(stmt);
DbUtils.closeQuietly(conn);
}
}
DAO工具类封装
public abstract class BaseDAO<T> {
private QueryRunner runner=new QueryRunner();
private Class<T> c=null;
{
Type genericSuperclass = this.getClass().getGenericSuperclass();
ParameterizedType parameterizedType=(ParameterizedType) genericSuperclass;
Type[] actualTypeArguments = parameterizedType.getActualTypeArguments();
c=(Class<T>) actualTypeArguments[0];
}
public Boolean update(Connection conn,String sql,Object ...args) {
try {
BeanHandler<T> handler=new BeanHandler<>(c);
T t=runner.query(conn,sql,handler);
return t;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public T queryBean(Connection conn, String sql, Object ...args){
try {
BeanHandler<T> handler=new BeanHandler<>(c);
T t=runner.query(conn,sql,handler);
return t;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public List<T> queryList(Connection conn, String sql, Object ...args){
try {
BeanListHandler<T> handler=new BeanListHandler<>(c);
List<T> list=runner.query(conn,sql,handler);
return list;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public <T> T getValue(Connection conn, String sql, Object ...args){
try {
ScalarHandler handler=new ScalarHandler();
T t= (T) runner.query(conn,sql,handler);
return t;
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
}
public interface StudentDAO {
void insert(Connection conn,Student s);
void deleteBySno(Connection conn,String sno);
void update(Connection conn, Student s);
Student getStudentBySno(Connection conn, String sno);
List<Student> getAll(Connection conn);
Long getCount(Connection conn);
}
public class StudentDAOImpl extends BaseDAO<Student> implements StudentDAO{
@Override
public void insert(Connection conn, Student s) {
String sql="insert into student(sno,sname,sage)values(?,?,?)";
update(conn,sql,s.getSno(),s.getSname(),s.getSage());
}
@Override
public void deleteBySno(Connection conn, String sno) {
}
@Override
public void update(Connection conn, Student s) {
}
@Override
public Student getStudentBySno(Connection conn, String sno) {
return null;
}
@Override
public List<Student> getAll(Connection conn) {
String sql="select * from student";
List<Student> list=queryList(conn,sql);
return list;
}
@Override
public Long getCount(Connection conn) {
String sql="select count(*) from student";
return getValue(conn, sql);
}
}