将某个接口作为形参传入,外部调用时只需重写接口即可
具体如下:
被调用类(JDBC_utils):
public class JDBC_utils {
private static Connection conn = null;
private static PreparedStatement pst = null;
//使用Statement处理查询操作
public static void excute_PstDML(String sql,IpstSetValues ips){
try {
//工具类ConnectionFactory获取连接对象
conn = ConnectionFactory.getConnection();
pst = conn.prepareStatement(sql);
//***调用接口的方法,具体方法的实现由方法的调用者实现,只需将对象传入***
ips.setValues(pst);
pst.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}finally {
工具类ConnectionFactory关闭连接对象
ConnectionFactory.closeConnection(pst, conn);
}
}
}
形参中接口(IpstSetValues ):
public interface IProcessRs {
public void processRs(ResultSet rs) throws SQLException;
}
测试类(StatementUtilsTest):
public class StatementUtilsTest {
public static void insert_pst_test1(){
String sql = "insert into test_user(id,name,age) values(?,?,?)";
JDBC_utils.excute_PstDML(sql, new IpstSetValues() {
//***调用者将具体的方法实现***
public void setValues(PreparedStatement pst) throws SQLException {
pst.setInt(1, 2);
pst.setString(2, "jack");
pst.setInt(3, 18);
}
});
}
public static void main(String[] args) {
insert_pst_test1();
}
}