XML解析
- 什么是XML
- DTD Schema 是用来做什么的
- 什么是格式良好XML
- 读取根路径下的资源文件,以properites为例
- dom4j解析xml
- xpath解析xml
1.什么是XML:可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。
2:DTD Schema 都是用来效验XML的
3.什么是格式良好XML:
3.1 有且只有一个根元素
3.2 XML标签大小写正确区分
3.3 正确使用结束标签
3.4 正确嵌套标签
3.5 使用了合法的标签名(A-Za-z0-9-_)
3.6 定义有效的属性
4; 读取根路径下的资源文件,以properites为例
5.dom4j解析xml
明确需求:
*要获取到名字为小芳,id=s002的学生信息,然后再控制台进行打印
*
*期望结果:
*sid=s002,name=小芳
*
*分析得出具体对的实现步骤
*1.加载资源文件
*2.解析得到所有的student标签
*3.遍历得到唯一个student标签xml内容
6.xpath解析xml
通用分页
-
通用分页核心思路
-
将上一次查询请求再发一次,只不过页码变了
-
下面上实际效果图
-
PageBean
分页三要素
page 页码 视图层传递过来
rows 页大小 视图层传递过来
total 总记录数 后台查出来pagination 是否分页 视图层传递过来
public List<E> query(String sql,PageBean pageBean,Callback<E> callback){
List<E> ls=new ArrayList<E>();
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
//第一次查询 查总记录数
if(null!=pageBean&&pageBean.isPagination()) {
try {
con=DBAccess.getConnection();
String countsql=this.getCountSql(sql);
ps=con.prepareStatement(countsql);
rs=ps.executeQuery();
if(rs.next()) {
pageBean.setTotal(rs.getInt(1));
}
} catch (SQLException e) {
// TODO: handle exception
throw new RuntimeException();
}finally {
DBAccess.close(null, ps, rs);
}
}
//第二次查询 查询满足条件的记录数
if(null!=pageBean&&pageBean.isPagination()) {
sql=this.getPageSql(sql, pageBean);
}
try {
con=DBAccess.getConnection();
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
return callback.foreach(rs);
} catch (SQLException e) {
// TODO: handle exception
throw new RuntimeException();
}finally {
DBAccess.close(null, ps, rs);
}
}
/**
* 把普通sql转成查总记录数sql
* @param sql
* @return
*/
public String getCountSql(String sql) {
String countSql="select count(*) from ("+sql+") t";
return countSql;
}
/**
* 查满足分页的sql
* @param sql
* @return
*/
public String getPageSql(String sql,PageBean pageBean) {
String pageSql=sql+" limit "+pageBean.getStartIndex()+","+pageBean.getRows()+"";
return pageSql;
}