Java-Web-Day12-DBUtils&xmlDBUtils的使用之ResultSetHandler的实现类一ArrayHandler和ArrayListHandlerArrayHandler ArrayHandler:将一条记录封装到一个数组当中。这个数组应该是Object[]。 DBUtils的使用之ResultSetHandler的实现类二BeanHandler和BeanListHandler/* * 使用BeanHandler查询 */ @Test public void demo1() throws SQLException{ QueryRunner queryRunner = new QueryRunner(JDBCUtilsNew.getDataSource()); Account account = queryRunner.query("select * from account where id=?", new BeanHandler<Account>(Account.class), 2); System.out.println(account); }BeanListHandler/* * 使用BeanListHandler查询 */ @Test public void demo2() throws SQLException{ //获取连接对象 QueryRunner queryRunner = new QueryRunner(JDBCUtilsNew.getDataSource()); //使用query方法,第二个参数创建BeanListHandler List<Account> list = queryRunner.query("select * from account", new BeanListHandler<Account>(Account.class)); for (Account account : list) { System.out.println(account); } }DBUtils的使用之ResultSetHandler的实现类三MapHandlern和MapListHandler/* * 使用MapHandler查询 */ @Test public void demo3() throws SQLException{ QueryRunner queryRunner = new QueryRunner(JDBCUtilsNew.getDataSource()); Map<String, Object> map = queryRunner.query("select * from account where id=?", new MapHandler(), 3); System.out.println(map); }MapListHandler/* * 使用MapListHandler查询 */ @Test public void demo4() throws SQLException{ QueryRunner queryRunner = new QueryRunner(JDBCUtilsNew.getDataSource()); List<Map<String, Object>> map = queryRunner.query("select * from account", new MapListHandler()); for (Map<String, Object> map2 : map) { System.out.println(map2); } }DBUtils的使用之ResultSetHandler的实现类四ScalarHandler@Test public void demo5() throws SQLException{ QueryRunner queryRunner = new QueryRunner(JDBCUtilsNew.getDataSource()); Object query = queryRunner.query("select count(*) from account", new ScalarHandler() ); System.out.println(query); }XML&Tomcat篇XML的概述XML的作用:XML的使用XML的语法.- XML的基本语法:
- XML必须有关闭标签
- 区分大小写
- 属性需要有引号
- 标签必须正确嵌套.
XML的文档声明- 文档声明:通常出现在XML的第一行第一列的位置!!!
- 写法:
- <?xml 属性名=”属性值” 属性名=”属性值” ...?>
- version :必须的. 使用”1.0”
- encoding :字符集. 是使用浏览器打开的时候采用的默认的字符集的编码.
- standalone :描述XML文档是否需要依赖其他的文件.
XML的注释XML的属性- 属性的名称规范与元素一致. ***** 属性需要使用引号!
XML的特殊字符和CDATA区- XML的特殊字符:
- XML的CDATA区:(CDATA:Character Data)
- <![CDATA[ 内容 ]]>
XML的解析(*****)- XML的解析:从XML文档中获得想要的数据(通过代码完成的.)
XML的解析的方式(*****):- DOM解析:DOM:Document Object Model.
- SAX解析:Simple Api for XML. DOM和SAX的区别:
- DOM:一次性将文档加载到内存中,形成树形结构进行解析。
- 缺点:如果文档特别大,容易导致内存的溢出。
- 优点:对XML进行增删改的操作。
- SAX:事件驱动的方式,逐行进行解析。
- 缺点:不能对文档进行增删改的操作。
- 优点:如果文档特别大,不会导致内存的溢出。
针对这两种解析的方式,不同的公司提供了不同的API的实现. JAXP :SUN公司提供的一套XML的解析的API. JDOM :开源组织提供了一套XML的解析的API-jdom. DOM4J :开源组织提供了一套XML的解析的API-dom4j. pull :主要应用在Android手机端解析XML.
DOM4J的入门案例步骤:- 【步骤一】导入jar包.dom4j-1.6.1.jar
- 【步骤二】创建解析器
- 【步骤三】解析文档获得代表文档的Document对象.
- 【步骤四】获得跟节点.
- 【步骤五】从跟节点下查找其他的节点.
XPath:- dom4j支持XPath的jar包.
- dom4j的XPath支持的API:
- List document.selectNodes(String xPath);
- Node document.selectSingleNode(String xPath);
- 代码:
@Test /** * DOM4J的XPath的写法: */ public void demo2() throws Exception{ // 创建解析器: SAXReader reader = new SAXReader(); // 解析XML返回Document对象. Document document = reader.read("xml/demo1.xml"); /*List<Node> list = document.selectNodes("//name"); for (Node node : list) { Element element = (Element) node; System.out.println(element.getText()); }*/ List<Node> list = document.selectNodes("//person['@id']"); for (Node node : list) { Element element = (Element) node; System.out.println(element.attributeValue("id")); } }
|