设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 7064|回复: 1
打印 上一主题 下一主题

JSP连接Access数据库的代码

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-29 02:18:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我写的一个用jsp连接Access数据库的代码。
要正确的使用这段代码,你需要首先在Access数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。
欢迎各位提出改进的意见。
以下用两种方式来实现jsp连接access数据库。
第一种JSP形式。


程序代码
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
    /*********************************
      *********   JDBC_ODBC连接Access数据库,不需要设置数据源
      *********   Date: 2005.8
      *********   Email:fanwsp@126.com
      *********   Author: DreamTime [梦想年华]
      *********   有任何欢迎提出指正   
      **********************************/
     
   
    // ******* 数据库连接代码 开始   *****
    //异常处理语句
     try
    {
        //以下几项请自行修改
        String spath = "data/test.mdb";//Access 数据库路径
        String dbpath = application.getRealPath(spath);//转化成物理路径
        String dbname = "";        //Acvess 数据库用户名,没有则为空
        String user = "";        //Access 数据库密码,没有则为空
//数据库连接字符串
        String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath;
        //加载驱动程序
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        //建立连接
         Connection conn= DriverManager.getConnection(url);
        //创建语句对象
         Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
        // ****    数据库连接代码 结束 ******
        
        //*********   测试数据代码开始   ******
        //请在数据库中建立username表,表中建立两个字段uid和pwd,类型为文本型
        String sql = "select * from username";
         ResultSet rs = stmt.executeQuery(sql);
        while(rs.next())
        {
             out.print("用户名:" + rs.getString("uid"));
             out.print("   密码:" + rs.getString("pwd") + "<br>");
        }
         out.print("<br>恭喜你!数据库连接成功!");
         rs.close();                                    //关闭记录集对象
         stmt.close();                                //关闭语句对象
         conn.close();                                //关闭连接对象
    }catch(Exception e){
         out.print("数据库连接错误!,错误信息如下:<br>");
         out.print(e.getMessage());
        }
    //*******    测试数据代码结束   *******
%>


第二种,JavaBean的形式。

程序代码
/*
***************************************
   *             作用: java连接Access数据库代码  
*     作者:梦想年华
*     Email:fanwsp@126.com
*     Author:梦想年华
*      CopyRight(c)2005-2006 by DreamTime
******** *******************************
*/


package conn;                            //导入包
import java.sql.*;                        //导入数据库操作的类

public class DBConnAccess                //构造方法,初始化
{

    private Connection conn;            //连接对象
    private Statement stmt;                //语句对象
    private ResultSet rs;                //结果集对象
    private String accessdriver;        //保存Access驱动程序字符串
    private String accessURL;             //保存Access连接字符串

    public DBConnAccess()
    {
        //Access驱动程序
         accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver";        
        //连接字符串
         accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
         conn = null;
    }

    //该方法从参数得到数据库路径,并加到连接字符串后面,然后再建立连接
    public Connection getConnToAccess(String dbpath){
         try{
             accessURL=accessURL+dbpath;
             Class.forName(accessdriver);
             conn = DriverManager.getConnection(accessURL);
            }catch(Exception e){
                System.out.println("操作数据库出错,请仔细检查");
                System.err.println(e.getMessage());
            }
        return conn;
    }
   
   
        
   //关闭数据库连接
    public void close()
    {
         try{
            //rs.close();
            //stmt.close();
             conn.close();
        }catch(SQLException sqlexception){
             sqlexception.printStackTrace();
        }
    }
}


调用方法如下:
程序代码
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*"  %>
<jsp:useBean id="DBConn" scope="page" class="conn.DBConnAccess"/>
<%
    //连接Access 数据库
    String dbpath="data/test.mdb";            //数据库的路径,请自行修改
     Connection conn=DBConn.getConnToAccess(application.getRealPath(dbpath));
     Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
         String sql="select * from username order by id";
    //String sql1="insert into username (uid,pwd) values('wsp','wsp')";
    //stmt.executeUpdate(sql1);
     ResultSet rs=stmt.executeQuery(sql);
   
    while(rs.next()){
     out.print("用户名:");
     out.print(rs.getString("uid")+" 密码:");
     out.println(rs.getString("pwd")+"<br>");
    }
     DBConn.close();
%>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 17:40 , Processed in 0.087734 second(s), 10 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表