JSP串連Access資料庫的代碼[原創]
來源:互聯網
上載者:User
剛剛寫的一個Java Web 中串連Access資料庫的代碼。這些天講到資料庫操作,但是我的本子是XP home版,安裝SQL Server比較麻煩,乾脆弄個ACCESS來示範好了。有時小型案頭資料庫還是蠻實用的嘛,哈~
<%@ page contentType="text/html; charset=GB18030" %>
<%@page import="java.sql.*" %>
<html>
<head>
<title>
jsp1
</title>
</head>
<body bgcolor="#ffffff">
<form method="POST" action="/Web/index.jsp">
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
out.print("資料庫驅動程式裝入錯誤");
}
try{
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+request.getRealPath("/")+"test.mdb";
//特別注意上面的Driver和(*.mdb)之間是有空格的
/*這個test.mdb檔案是存放在Web Module目錄下的,當然可以自行改變路徑*/
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * FROM log");//log為表名,和SQL一樣
while(rs.next()){
out.print(rs.getInt("ID")+" ");
out.print(rs.getString("username")+" ");
out.print(rs.getString("password")+" ");//log表中三個欄位,主鍵是ID,自增的。username和password是文本類型。
out.println("<br>");
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception ex){
out.print(ex);
}
%>
</form>
</body>
</html>
================================================================================
下面是網上搜的一些JSP或JavaBean串連ACCESS的代碼,摘自【http://blog.csdn.net/rimoer/archive/2007/04/06/1554842.aspx】
我寫的一個用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
******** *******************************
*/
[/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 ( "使用者名稱:" ) ;
&n