用Jdbc-odbc桥来连接,不过这可是牺牲了速度来的。用Jdbc-odbc桥的话,和连接access是一样的,先要设置一个数据源DNS,然后就用:
Class.forName("sun.Jdbc.odbc.JdbcOdbcDriver");
Connection conn=DriverManager.getConnection("Jdbc:odbc:strurl",”
username”,”password”);
进行数据库的链接是比较耗时的,如果频繁刷新页面,那就会不停的访问数据库,大大耗去了数据库的资源。JSP提供了这样一对函数,JSPInit(),JSPDestory();如果要在JSP网页开始执行时,进行某些数据的初始化,则可以利用JSPInit函数来完成。此函数将在JSP网页被执行时调用,且当JSP网页重新整理时,并不会被再度执行。当关闭服务器时,JSPDestory函数将被调用,可利用该函数来完成数据的善后处理。
可以利用JSPInit和JSPDestory函数来完成数据库的链接和关闭。在JSPInit中进行数据库的链接,可以避免每次刷新页面时都要链接数据库,提高了工作效率。
以下是代码实例:
- <%!
- 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());
- }
- }
- %>
当JSP网页从数据库中取得数据时,最耗费服务器时间的是建立数据库链接。用JSPInit
和JSPDestory函数并不是非常好的办法,毕竟每浏览一次新网页,就要建立数据库链
接。这个时候可以为一个联机者建立一个数据库链接。这里我们利用Bean对象来建立数
据库链接。
以下是代码实例:
- //定义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方法
- }
- }