2.11.1 建立数据库的辅助工具类
在修改Action的execute()方法之前,首先要建立一个数据库的辅助工具类,这个工具类的作用是完成关于数据库的一些辅助工作。在这个类中包括两个方法,它们是getConnection()和releaseConnection()。
其中,getConnection()用于返回代表与数据库建立连接的Connection对象的实例,而releaseConnection()方法则用于释放数据库的相关资源和连接。
这个数据库辅助工具类的实现方法如清单2.19所示。
清单2.19 数据库辅助工具类的实现
package cn.hxex.tutorial;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 数据库辅助工具类
*
* @author galaxy
*/
public class DatabaseConnection {
public static String url = "jdbc:oracle:thin:@192.168.10.121:1521:HiFinance";
public static String user = "scott";
public static String password = "tiger";
public static String driver = "oracle.jdbc.driver.OracleDriver";
/**
* 获得数据库的连接
* @return 数据库的连接
*/
public static Connection getConnection()
{
try {
Class.forName( driver );
return DriverManager.getConnection( url, user, password );
} catch (SQLException e) {
e.printStackTrace();
return null;
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
return null;
}
}
/**
* 关闭与数据的连接,并释放相应的资源
*/
public static void releaseConnection( Connection conn,
Statement st, ResultSet rs )
{
if( rs!=null )
{
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if( st!=null )
{
try {
st.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if( conn!=null )
{
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
这里通过常量定义的方式定义了连接数据库所需要使用的各个参数的值,需要根据不同类型的数据库以及驱动程序的类型来进行调整。
使用JDBC访问数据库时,建立数据库与数据库连接的方法是固定的。不同的地方在于在这个类中所定义的那些常数参数会由于访问数据库的不同以及使用的驱动程序的不同而不同。
释放数据库的资源以及关闭数据库的方法也是固定的。在开发中一定要养成随时释放不再使用的资源的好习惯。另外,由于访问数据库所使用的各个对象具有先后的依赖关系,所以对于这种资源的释放通常是按照“后申请的先释放”的原则来进行。而且,在释放的过程中要考虑异常情况,确保资源可以被完整地释放。
在这里每次访问数据库的时候都需要重新建立新的连接,这样会严重影响程序的运行速度,在实际的项目中必须要使用数据库连接池来提高数据库访问的效率。
下面就来进行数据库的初始化工作。






