適用初學(xué)者的JSP連接Access數(shù)據(jù)庫(kù)代碼
Web開(kāi)發(fā)編程軟件 界面設(shè)計(jì)軟件!
適用初學(xué)者的JSP連接Access數(shù)據(jù)庫(kù)代碼,剛剛寫的一個(gè)Java Web 中連接Access數(shù)據(jù)庫(kù)的代碼。這些天講到數(shù)據(jù)庫(kù)操作,但是我的本子是XP home版,安裝SQL Server比較麻煩,干脆弄個(gè)ACCESS來(lái)演示好了。有時(shí)小型桌面數(shù)據(jù)庫(kù)還是蠻實(shí)用的嘛,哈~
復(fù)制內(nèi)容到剪貼板代碼:
<%@ page contentType="text/html; charset=GB18030" %>
<%@page import="java.sql.*" %>
<html>
<head>
<title>
jsp1
</title>
</head>
<body bgcolor="#ffffff">
<form method="POST" action="Webindex.jsp">
<%
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){
out.print("數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序裝入錯(cuò)誤");
}
try{
String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+request.getRealPath("/")+"test.mdb";
//特別注意上面的Driver和(*.mdb)之間是有空格的
/*這個(gè)test.mdb文件是存放在Web Module目錄下的,當(dāng)然可以自行改變路徑*/
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表中三個(gè)字段,主鍵是ID,自增的。username和password是文本類型。
out.println("<br>");
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception ex){
out.print(ex);
}
%>
</form>
</body>
</html>
下面是網(wǎng)上搜的一些JSP或JavaBean連接ACCESS的代碼,摘自【http://blog.csdn.net/rimoer/archive/2007/04/06/1554842.aspx】
我寫的一個(gè)用jsp連接Access數(shù)據(jù)庫(kù)的代碼。
要正確的使用這段代碼,你需要首先在Access數(shù)據(jù)庫(kù)里創(chuàng)建一username表,表里面創(chuàng)建兩個(gè)字符型的字段,字段名分別為:uid,pwd,然后插入幾條測(cè)試數(shù)據(jù)。
歡迎各位提出改進(jìn)的意見(jiàn)。
以下用兩種方式來(lái)實(shí)現(xiàn)jsp連接access數(shù)據(jù)庫(kù)。
第一種JSP形式。
復(fù)制內(nèi)容到剪貼板代碼:
<%@ page contentType="text/html; charset=gb2312" language="java"
import="java.sql.*"%>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%
; /*********************************
; ;********* ;JDBC_ODBC連接Access數(shù)據(jù)庫(kù),不需要設(shè)置數(shù)據(jù)源
; ;********* ;Date: 2005.8
; ;********* ;Email:[email protected]
; ;********* ;Author: DreamTime [夢(mèng)想年華]
; ;********* ;有任何歡迎提出指正 ;;
; ;**********************************/
; // ******* 數(shù)據(jù)庫(kù)連接代碼 開(kāi)始 ;*****
; //異常處理語(yǔ)句
; try
; {
//以下幾項(xiàng)請(qǐng)自行修改
String spath = "data/test.mdb";//Access 數(shù)據(jù)庫(kù)路徑
String dbpath = application.getRealPath(spath);//轉(zhuǎn)化成物理路徑
String dbname = "" ; ; ;//Acvess 數(shù)據(jù)庫(kù)用戶名,沒(méi)有則為空
String user = "" ; ; ;//Access 數(shù)據(jù)庫(kù)密碼,沒(méi)有則為空
//數(shù)據(jù)庫(kù)連接字符串;
String url ="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ="+dbpath;;
//加載驅(qū)動(dòng)程序
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//建立連接
Connection conn= DriverManager.getConnection(url);;
//創(chuàng)建語(yǔ)句對(duì)象
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
// **** ; 數(shù)據(jù)庫(kù)連接代碼 結(jié)束 ******
//********* ;測(cè)試數(shù)據(jù)代碼開(kāi)始 ;******
//請(qǐng)?jiān)跀?shù)據(jù)庫(kù)中建立username表,表中建立兩個(gè)字段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>恭喜你!數(shù)據(jù)庫(kù)連接成功!");
rs.close(); ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;//關(guān)閉記錄集對(duì)象
stmt.close(); ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;//關(guān)閉語(yǔ)句對(duì)象
conn.close(); ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;//關(guān)閉連接對(duì)象
; }catch(Exception e){
out.print("數(shù)據(jù)庫(kù)連接錯(cuò)誤!,錯(cuò)誤信息如下:<br>");
out.print(e.getMessage());
}
; //******* ; 測(cè)試數(shù)據(jù)代碼結(jié)束 ;*******
%>
第二種,JavaBean的形式。
復(fù)制內(nèi)容到剪貼板代碼:
/*
***************************************
* ; ; ; ; ; ;作用: java連接Access數(shù)據(jù)庫(kù)代碼 ;
* ; ;作者:夢(mèng)想年華
* ; ;Email:[email protected]
* ; ;Author:夢(mèng)想年華
* ; ; CopyRight(c)2005-2006 by DreamTime;
******** *******************************
*/
[/color]
package conn; ; ; ; ; ; ; ; ; ; ; ; ; ; ;//導(dǎo)入包
import java.sql.*; ; ; ; ; ; ; ; ; ; ; ; ;//導(dǎo)入數(shù)據(jù)庫(kù)操作的類
public class DBConnAccess ; ; ; ; ; ; ; ;//構(gòu)造方法,初始化
{
; private Connection conn; ; ; ; ; ; ;//連接對(duì)象
; private Statement stmt; ; ; ; ; ; ; ; ;//語(yǔ)句對(duì)象
; private ResultSet rs; ; ; ; ; ; ; ; ;//結(jié)果集對(duì)象
; private String accessdriver; ; ; ; ;//保存Access驅(qū)動(dòng)程序字符串
; private String accessURL; ; ; ; ; ; ; //保存Access連接字符串
; public DBConnAccess()
; {
//Access驅(qū)動(dòng)程序
accessdriver = "sun.jdbc.odbc.JdbcOdbcDriver" ; ; ;
//連接字符串
accessURL = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
conn = null;
; }
; //該方法從參數(shù)得到數(shù)據(jù)庫(kù)路徑,并加到連接字符串后面,然后再建立連接
; public Connection getConnToAccess(String dbpath){
try{
; accessURL=accessURL+dbpath;
; Class.forName(accessdriver);
; conn = DriverManager.getConnection(accessURL);
; }catch(Exception e){
; ; ; System.out.println("操作數(shù)據(jù)庫(kù)出錯(cuò),請(qǐng)仔細(xì)檢查");
; ; ; System.err.println(e.getMessage());
; }
return conn;
; }
;;
;;
; ; ;;
;//關(guān)閉數(shù)據(jù)庫(kù)連接
; public void close()
; {
try{
; //rs.close();
; //stmt.close();
; conn.close();;
}catch(SQLException sqlexception){
; sqlexception.printStackTrace();
}
; }
}
調(diào)用方法如下:
復(fù)制內(nèi)容到剪貼板代碼:
<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 數(shù)據(jù)庫(kù)
; String dbpath="data/test.mdb" ; ; ; ; ;//數(shù)據(jù)庫(kù)的路徑,請(qǐng)自行修改
; 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();
%>
相關(guān)文章:
1. 基于javaweb+jsp實(shí)現(xiàn)企業(yè)財(cái)務(wù)記賬管理系統(tǒng)2. jsp實(shí)現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫(kù)的方法3. 詳解JSP 內(nèi)置對(duì)象request常見(jiàn)用法4. JSP+Servlet實(shí)現(xiàn)文件上傳到服務(wù)器功能5. jsp+servlet實(shí)現(xiàn)猜數(shù)字游戲6. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法7. jsp EL表達(dá)式詳解8. JSP標(biāo)簽庫(kù)介紹9. 關(guān)于IDEA使用jsp可以訪問(wèn)頁(yè)面轉(zhuǎn)換為html彈出頁(yè)面為404的問(wèn)題10. JSP入門教程
