王刘锁
依稀记得早上学习的是DBUtils的查询query()方法!其实是把查询到的数据封装.还
好要重点掌握的就两种方式也就是结果集的一些实现类,
首先不管哪种方式,我们先创建queryRunner对象
QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
接下来就是各种查询方法
第一种:数组ArrayHandler()和ArrayListHandler()的封装方法,
object [] obj = queryRunner.query("select * from accounts where id=?",new ArrayHandler(),1);
1是?对应的值---这时查询一条记录
System.out.println(Arrays.toString(obj);---输出
List<object[]> list = queryRunner.query("select * from accounts where id=?",new ArrayListHandler(),1);
,---这是查询多条记录,每条记录是一个数组,
把数组存入集合,这种方式要遍历list来输出
for(Object[] object1 :list){
System.out.println(Arrays.toString(object1));
}
第二种方法:对象BeanHandler()和BeanListHandler(),这中方式要事先创建一个
bean(Account类 必须空参构造和setget方法toString方法)来
Account account = queryRunner.query
("select * from accounts where id=?",new BeanHandler<Account>(Account.class),1);
这里面泛型写的就是之前创建的bean,参数是bean的class对象,返回的是bean对象,那我们就可以直接输出这
个对象.那如果查询多条记录就可以参考上面的数组方法不过就是数组换成对象.
第三种:单值封装ScalarHandler(),很简单,查询统计数的时候可以用
Object obj = queryRunner.query("select count(*) from accounts",new ScalarHandler());
,直接输出obj就是统计出来的数字
然后学习了XML;它是一种通用性扩展标记语言跟HTML很像,不过XML现在一般用来做
为配置文件,因为它通用于各种编程语言,虽然它也有传输数据和存储数据的功能,
但是比它功能强大存储有数据库传输有Json,那我们学习一门语言就要学习它的语
法和规范.比较重要的是XML的标签是可扩展的我们可以自己定义标签,但是必须有
关闭标签,标签的属性值必须用引号,嵌套必须规范对应,并且标签名严格区分大小
写,说到名字那规则也要说一下,起名字可以用数字字母和其它字符,但不能数字和
标点符xml字样开头,而且名称不能有空格,像特殊字符和声明注释什么的简单的可以去查手册!!
下面写一段代码,用DOM4J+XPath解析XML文件
关于解析方式我们只要记住解析方式只有两种DOM和SAX,两者的不同就是DOM加载进
内存形成树结构,方便曾删改数据但是如果文件太大会内存溢出,SAX呢就是一条一
条的解析,不会内存溢出但是不能增删改数据,DOM4J巧妙的融合两种方式所以用的
最多,XPath呢是定义了一些可以直接获取标签路径的表达式,很暴力的样子.下面是
解析步骤
第一步:导包.dom4j-1.6.1.jar 不多说
第二步:创建解析器:SAXReader reader = new SAXReader();
第三步:解析文档:Document document = reader.read("xml/demo.xml");Document
是文档加载进内存形成树结构后的对象
第四步:利用XPath的格式来获取想要的标签元素.具体的表达式可以查api
List<Node> list = document.selectNodes("//city");
遍历list输出
for(Node node : list){
Element element = (Element)node;强转,
System.out.println(element.getText()--获取文本内容);
}
很多表达式和方法查手册就好了.然后是约束,就记住有两种约束DTD和Schema以及
区别就可以了,毕竟也不可能自己去写约束,区别就是DTD自立门户,Schema跟XML一
家亲,所以跟容易被解析并且支持名称空间(不知道啥意思)比DTD更强大的约束力.
|