HyperSQL 访问数据

如前面章节所描述的, java.sql.Connection 对象被用来连接访问数据库,但是数据库访问的性能却是由你数据库的运行方式决定的。

经常性的打开和关闭数据库连接将会对数据库性能造成不小的压力,好的习惯应该是在一次数据库连接中尽可能多的完成所需要的所有操作。一个数据库连接应该被尽可能的重用,当长时间不再需要进行数据库连接的时候再将这个连接关闭。

相对数据库服务器连接来说,重用是非常重要的。一个数据库服务器的连接都会使用一个 TCP 端口,每次连接的时候,相关的服务端口将会被操作系统分配,当连接被关闭的时候,连接使用的 TCP 端口将会被服务器释放。

如果在一个客户端发出了非常多的连接请求,操作系统可能不能再接纳新的连接而拒绝客户端的连接服务请求。

一个 java.sql.Connection 对象有些方法是返回 java.sql.* 对象。所有的这些对象将会在连接关闭的时候而销毁,因此这些对象都是可以被重用的。但是,如果你不再需要这些对象,你应该主动的将连接关闭。

java.sql.DatabaseMetaData 对象用于返回数据库的 metadata。

java.sql.Statement 被用来执行查询和数据修改。java.sql.Statement 可以在一次连接中执行多个 SQL 脚本。

java.sql.PreparedStatement 被用来重复执行一条 SQL 语句。这个 SQL 语句执行栈通常包含有参数,这样可以在每次新执行的时候来指定不同的参数变量。当 java.sql.PreparedStatement 对象被创建后,数据库引擎将会下一次的重复使用重新编译 SQL 栈,直到 java.sql.PreparedStatement 对象被关闭。

作为一个重复执行的操作,使用 java.sql.PreparedStatement 将会比 java.sql.Statement 对象快很多。

java.sql.CallableStatement 对象被用来执行一个 SQL 的调用。SQL 调用可能会包含有很多的参数,而且每一次调用的时候,所使用的参数也有可能不相同。 与 java.sql.PreparedStatement 类似,数据库引擎将会在调用前重新编译 SQL 栈,直到 java.sql.CallableStatement 对象被关闭。

java.sql.Connection 对象中包含有一些处理数据库连接和通信的方法。

commit() 方法等同于数据库使用的 COMMIT 方法,将对数据库的修改提交。

rollback() 方法等同于数据库的 ROLLBACK 方法,将对数据库的修改撤回。

setSavepoint (字符串)方法等同于 SQL 中使用的 SAVEPOINT,同时将会返回一个 java.sql.Savepoint 对象。rollback 方法将会让数据库撤回到你的 SAVEPOINT。

Java API 中关于 JDBCConnection,JDBCDriver,JDBCDatabaseMetadata,JDBCResultSet,JDBCStatement,JDBCPreparedStatement 等 JDBC 中的方方法都能被 HSQLDB 支持并整合到 HSQLDB 的数据库中了。