我写的一个用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
- ********* 有任何欢迎提出指正
- **********************************/
- // ******* 数据库连接代码 开始 *****
- //异常处理语句
- 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
- ******** *******************************
- */
- [/color]
- 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();
- %>
转自 梦想年华