Java数据库编程:
1. JDBC概述:JDBC(数据库连接)是Java中提供的一套数据库编程API,它定义了一套用来访问数据库的标准Java类库(位于java.sql和javax.sql包中)。用JDBC开发的数据库 应用既可以跨操作系统平台,又可以跨数据库系统平台。
在JDBC的基本操作中,最常用的类和接口包括DriverManager, Connection, Statement, PreparedStatement, CallableStatement 和 ResultSet.
(1) DriverManager类 用于管理JDBC驱动的服务类,程序中主要使用该类获得Connection对象。
(2) Connection接口 代表数据库连接,每个Connection对象代表一个与数据库的物理连接会话。要想访问数据库,必须先获得数据库连接。
(3) Statement接口 SQL语句,Statement对象用于执行SQL语句,它可以用于执行DML、DDL和DCL语句。当执行SQL查询时,返回查询到的结果集。
(4) PreparedStatement接口 是Statement的子接口,代表预编译的SQL语句。使用PreparedStatement对象可以执行预编译的SQL语句,性能更好。
数据库中的存储过程。使用CallableStatement对象可以执行数据库中的存储过程。
(6) ResultSet接口 代表返回的结果集。ResultSet包含访问查询结果的方法,它可以通过列索引或列名获得列数据。使用ResultSet对象可以操作查询返回的结 果集。
2.JDBC编程六步骤:
(1) 根据应用程序所用的数据库,选择JDBC驱动程序类型;
(2) 连接到数据库,得到Connection对象;
(3) 通过Connection创建Statement对象;
(4) 使用Statement对象提交SQL语句;
(5) 操作结果集;
(6) 回收数据库资源。
3.连接到数据库:有两种方法可以设置一个到数据库的连接,分别是:
(1) 使用java.sql.DriverManager类的静态方法getConnection(),该方法带一个URL代表数据源的名称。
(2) 使用JNDI (Java Naming and Directory Interface, Java命名服务) 查找数据源的名称。JNDI返回一个javax.sql.DataSource类的getConnection()方 法。
4.通过Connection创建Statement对象:
在JDBC中有三种类型的Statement对象:
(1) java.sql.Statement:代表一个没有参数的简单的sql语句;
(2) java.sql.PreparedStatement: PreparedStatement是Statement的子接口,代表预编译的SQL语句。该语句带有参数参数需要在SQL语句执行前进 行设置。
(3) java.sql.CallableStatement:CallableStatement是Statement的子接口,CallableStatement对象用于调用数据库中的存储数据过程。
Connection有三个方法分别用于创建这三类Statement:
(1) Statement create Statement():创建基本的Statement对象。
(2) PreparedStatement preparedStatement (String sql):根据传入的SQL语句创建PreparedStatement 对象。
(3) CallableStatement prepareCall ( String sql ):根据传入的sql语句创建CallableStatement对象。
Statement常用于执行一个肯定只发生一次,并且没有参数的SQL语句。
5.使用JDBC执行SQL语句:
Ⅰ 使用Statement执行SQL语句:Statement代表任何SQL语句,同时Statement接口提供了定义和执行SQL语句的一些方法,包括:
(1) ResultSet executeQuery (String sql):执行一个返回单个结果集的SQL语句。只能该方法执行SELECT语句。
(2) int executeUpdate (String sql):使用该方法执行不返回结果集的DDL和DML ( Update, Insert, Delete )语句。如果执行的是DML,则返回值为执行SQL 语句影响的行数,如果执行的是DDL,则返回值为0。
(3) boolean execute (String sql):该方法可以执行任何SQL语句。
Ⅱ 使用PreparedStatement执行SQL语句:PreparedStatement接口用于代表一条预编译的语句。Connection接口中包含了如下六个方法用于创建 PreparedStatement对象:
(1) preparedStatement ( String sql ):使用给定SQL语句,创建一个默认的PreparedStatement对象;
(2) PreparedStatement ( String sql, int ResultSetType, int concurrency, int holdability ):使用给定SQL语句、结果集类型、并发类型和可保存性类型,创 建一个PreparedStatement对象。
(3) PreparedStatement ( String sql, int ResultSetType, int concurrency ):使用给定SQL语句、结果集类型、并发类型,创建一个PreparedStatement对 象。
自动生成的键。参数pk指示是否应该返回自动生成的键的 标志,它是StatementRETURN_GENERATED_KEYS 或 StatementNO_GENERATED_KEYS之一。
(5) PreparedStatement ( String sql, String[] keys ):创建一个默认PreparedStatement对象,该对象能获取自动生成的键。keys字符串数组代表组成主键的 列名。
(6) PreparedStatement ( String sql, int[] keys ):余上一个方法类似,除了列数组使用列索引代替列名来描述。
注:后三个方法只适用于Insert方法。
Java与XML解析技术:
1.XML概述:
XML指可扩展标记语言(eXtensible Markup Language),它是一种很像HTML的标记语言。XML的设计宗旨是传输数据,焦点是数据的内容,而HTML被设计用来显示 数据,其焦点是数据的外观。XML是不会做任何事情的,它只是被设计用来结构化、存储以及传输信息。
1.XML语法规则:
1. 它定义XML的版本(1.0)和所使用的编码(utf-8)字符集。
2. 所有的XML元素都是成对出现的,有一个开始标签,就必须有一个关闭标签。
3. XML标签对大小写敏感,标签<Letter>与标签<letter>是不同的。
4. XML文档必须有根元素,标签如果需要嵌套,必须正确嵌套,在内层打开的标签就必须在内层关闭。
5. XML标签如果需要添加属性,属性值必须加引号。
6. 在XML中编写注释的语法与HTML的语法很相似,都是 <!– This is a comment –>。
7. 在XML中,空格会被保留,不像HTML中,加再多的空格最终都只合并为一个。
XML命名规则
XML元素必须遵循以下命名规则:
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
- 名称不能包含空格
- 可使用任何名称,没有保留的字词。
XML声明:1.XML文档声明由"<?xml"开始,由"?>"结束;
2.XML声明有版本号 ( version )、独立文档声明 ( standalone ) 和编码声明 ( encoding )三个属性;
3.版本声明文档所采用的XML版本号,必须排在第一位;
DTD:
DTD的目的是定义XML文档的结构。它使用一系列合法的元素来定义文档结构:
在DTD中,XML元素通过元素声明来进行声明。元素声明使用下面的语法:
1
或
1
空元素:空元素通过类别关键词EMPTY进行声明:
1
声明只出现一次的元素:
1
声明最少出现一次的元素:
1
声明出现零次或多次的元素:
1
声明出现零次或一次的元素:
1 <!ELEMENT 元素名称 (子元素名称?)>
声明属性:
1
xPath:
XPath路径表达式
XPath使用路径表达式来选取XML文档中的节点或者节点集,这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。
XPth节点:
在XPath中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML文档是被作为节点树来对待的,树的根被称为文档节点或者根 节点。
XPath通配符可用来选取未知的XML元素:
通配符 | 描述 |
* | 匹配任何元素节点 |
@* | 匹配任何属性节点 |
node() | 匹配任何类型的节点 |
SAX提供一种用于解析XML文档的事件驱动模型,在识别不同的XML语法结构时SAX解析器使用回调机制来通知客户端应用程序