JDBC需要与JDBC兼容的SQL驱动支持,即支持ANSI SQL72标准。SQL有很多用途,当SQL语句被用来创建、设计数据库时,它是一个数据定义语言;当用来向数据库插入信息、更新或删除已经存在的信息时,它是一个数据维护语言;当从数据库中查询提取信息时,它是数据查询语言。有关SQL语句的一些语法规则,请参考有关书籍,在此略。Java语言设计java.sql 包的目的就是让你执行符合Java的SQL语句。java.sql中的Statement 接口定义了一些方法,这些方法通过SQL语句的执行来与数据库交互,也支持通过ResultSet对象返回查询结果集合的处理和提供查询处理机制的控制。execute()、 executeQuery() 和executeUpdate() 方法是Statement接口的主要方法。executeQuery() 方法执行一个 SQL语句(如SELECT语句等)并查询返回一个ResultSet对象。executeUpdate() 方法执行一个SQL 语句 (如INSERT、UPDATE、DELETE 语句等)并更新数据库、返回SQL
查询结果集合的行数(记录数),如果结果集合为空则行数为0。
Java中有关SQL语句的程序片段如下:
import java.sql.*;
import java.util.*;
class ResultApp {
public static void main(String args) {
try{
// Load the JDBC-ODBC bridge driver方式
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:tend";
// 连接到数据库
Connection connection=DriverManager.getConnection(url);
Statement statement = connection.createStatement();
String sql="SELECT * FROM courses";
// 执行SQL 语句得到结果集合
ResultSet result = statement.executeQuery(sql);
displayResults(result);
// 关闭数据库连接
connection.close();
}catch(Exception ex){
System.out.println(ex);
System.exit(0);
}
}
5.数据库安全性
数据库的安全性问题是很多机构非常关心的
问题。因为数据库中可能包含一些比较敏感的信息需要加以限制访问范围;数据的完整性也是极为重要的,未授权的肆意修改数据库信息可能造成公司巨大的损失;数据的有效提供也是重要的,Internet/Intranet用户随时需要信息,这就常常需要提供每天24小时、每周7天的可访问。JDBC支持数据库安全吗?
答案不是非常满意。当前JDBC要依靠数据库服务器自身提供安全保护。企业范围的数据库服务器,如微软的SQL Server提供用户ID和口令,然而,即使是口令保护也不是非常安全的,如果口令在客户与服务器之间未加密,它们能很容易被截获而危及安全。
Java的安全机制很高,Java2改进了沙箱,为用户和程序人员提供了灵活的安全管理及配置工具。Applet程序安全性更加灵活,建议利用Java的安全机制及提供的一些工具来进行数据库应用系统的开发。
Java2(JDK1.2)提供的安全工具如下:
用jar工具打包你的applets成为Java 存档文件 (JAR);
用jarsigner对JAR文件进行数字签名;
用policytool对信任applets的Java运行环境Java Runtime Environment (JRE)配置;
用keytool进行数字证书的签证;
三、 Java 的数据库应用开发展望
至此,你已知道:要进行Java 数据库应用程序的设计,需要具备多方面的技能,包括了解或熟练数据库驱动程序、SQL( 结构化查询语言)以及java.sql包所包含的类、接口等。JavaSoft 已经注意到了Java 在数据库程序设计方面的棘手而复杂,他们现在正在开发新的同Java一样容易使用的产品JavaBlend ,该产品将大大简化利用JDBC构建数据库应用系统的过程。JavaBlend 将自动镜像Java 对象成为存储在数据库中的信息。所有对对象的操作,都将产生与之镜像的数据库的动作,包括对存储在数据库中信息的自动
查询、更新等。一旦Java 的对象到数据库镜像(Java object-to-database mapping)被成功建立,JavaBlend 将免费发放给Java 程序员,以使Java 程序员