在企业级的Java应用中,访问数据库是一个必备的环节。数据库作为数据资源的集散地,往往位于企业级软件体系的后方,供前方的应用程序访问。在Java技术的体系中,应用程序是通过JDBC(Java Database Connectivity)接口来访问数据库的,JDBC支持"建立连接、SQL语句查询、处理结果"等基本功能。在应用JDBC接口访问数据库的过程中,只要根据规范来操作,这些功能的实现不会出差错。但是,有些时候进行数据查询的效率着实让开发人员懊恼不已,明明根据规范编写的程序,却得不到预期的运行效果,造成了整个软件的执行效率不高。
起初,我们把问题归结于Java字节码加载和执行速度的缓慢,紧接着硬件的功能普遍得到了增强,证明这样的想法些许是错误的,还没有抓到真正的根本原因。本文将逐步解剖JDBC访问数据库的机制,深层分析造成这种速度瓶颈问题的原因,并提出在现有的Java技术框架下解决这个速度瓶颈问题的思路和方法。
下面是一个例子
//连接 Mysql 数据库
public Connection connectMysql()
{
Connection conn;
conn=null;
try{
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/库名","用户名","密码");
return conn;
}catch(Exception e){
System.err.print(e.getMessage());
e.printStackTrace();
}
return conn;
}
//连接 Oracle 数据库
public Connection connectOracle()
{
Connection conn;
conn=null;
try{
//Class.forName("oracle.jdbc.driver.OracleDriver");
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
conn = DriverManager.getConnection ("jdbc:oracle:thin:@服务器名或IP地址:1521:库名","manager","system");
return conn;
}catch(Exception e){
System.err.print(e.getMessage());
e.printStackTrace();
}
return conn;
}
//连接 DB2 数据库
public Connection connectDB2()
{
Connection conn;
conn=null;
try{
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
conn = DriverManager.getConnection("jdbc:db2:DBName","用户名","密码");
return conn;
}catch(Exception e){
System.err.print(e.getMessage());
e.printStackTrace();
}
return conn;
}