用Jdbc-odbc桥来连接,不过这可是牺牲了速度来的。用Jdbc-odbc桥的话,和连接access是一样的,先要设置一个数据源DNS,然后就用:
◆Class.forName("sun.Jdbc.odbc.JdbcOdbcDriver");
◆Connection conn=DriverManager.getConnection("Jdbc:odbc:strurl",”
◆username”,”password”);
进行数据库的链接是比较耗时的,如果频繁刷新页面,那就会不停的访问数据库,大大耗去了数据库的资源。JSP提供了这样一对函数,JSP Init(),JSP Destory();如果要在JSP网页开始执行时,进行某些数据的初始化,则可以利用JSP Init函数来完成。此函数将在JSP网页被执行时调用,且当JSP网页重新整理时,并不会被再度执行。当关闭服务器时,JSP Destory函数将被调用,可利用该函数来完成数据的善后处理。
可以利用JSP Init和JSP Destory函数来完成数据库的链接和关闭。在JSP Init中进行数据库的链接,可以避免每次刷新页面时都要链接数据库,提高了工作效率。
以下是代码实例:
<%!
Connection conn=null;
Statement st=null;
ResultSet rs=null;
Public void jspInit()
{
Try
{
//加载驱动程序类
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
//连接数据库
Connection conn=DriverManager.getConnection("jdbc:odbc:strurl",”
username”,”password”);
//建立Statement对象
St=conn.CreateStatement();
}
Catch(Exception ex)
{
System.out.println(ex.toString());
}
}
Public void jspDestroy()
{
try
{
rs.close();
st.,close();
conn.close();
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
%>
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
当JSP网页从数据库中取得数据时,最耗费服务器时间的是建立数据库链接。用JSP Init
和JSP Destory函数并不是非常好的办法,毕竟每浏览一次新网页,就要建立数据库链
接。这个时候可以为一个联机者建立一个数据库链接。这里我们利用Bean对象来建立数
据库链接。
以下是代码实例:
conn.java
//定义bean所属的套件
package com.test;
import java.io.*;
import java.sql.*;
import javax.servlet.http.*;
public class conn implements HttpSessionBindingListener
{
private Connection con=null;
public conn() //在构造函数中完成数据库链接
{
BulidConnection();
}
private void BulidConnection()
{
try
{
//载入驱动程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(java.lang.ClassNotFoundException e1)
{
System.out.println("数据库驱动加载失败<br>");
}
try
{
//建立数据库链接
con=DriverManager.getConnection("jdbc:odbc:test","test","test");
}
catch(SQLException e2)
{
System.out.println("数据库连接失败");
}
}
//取得Connection对象
public Connection getConnection()
{
if(con==null)
BulidConnection();
return this.con;
}
public void close()
{
try
{
con.close();
con=null;
}
catch(SQLException sex)
{
System.out.println(sex.toString());
}
}
//当物体加入session时,将自动执行此函数
public void valueBound(HttpSessionBindingEvent event){}
//当session对象删除时,将自动执行此函数
public void valueUnbound(HttpSessionBindingEvent event)
{
if(con!=null)
close();//调用close方法
}
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
- 50.
- 51.
- 52.
- 53.
- 54.
- 55.
- 56.
- 57.
- 58.
- 59.
- 60.
- 61.
- 62.
【编辑推荐】