轉: ?
? 在JSP中訪問數據庫大全 ? ?
? ?
? ? ? ? ? 現在有好多初學jsp的網友經常會問數據庫怎么連接啊,怎么老出錯啊?所以我集中的在這寫篇文章供大家參考,其實這種把數據庫邏輯全部放在jsp里未必是好的做法,但是有利于初學者學習,所以我就這樣做了,當大家學到一定程度的時候,可以考慮用MVC的模式開發。在練習這些代碼的時候,你一定將jdbc的驅動程序放到服務器的類路徑里,然后要在數據庫里建一個表test,有兩個字段比如為test1,test2,可以用下面SQL建 ? create ? table ? test(test1 ? varchar(20),test2 ? varchar(20),然后向這個表寫入一條測試紀錄,那么現在開始我們的jsp和數據庫之旅吧。 ? ?
? ?
? ? ? ? ? 一、jsp連接Oracle8/8i/9i數據庫(用thin模式) ? ?
? ?
? ?
? testoracle.jsp如下: ? ?
? <%@ ? page ? contentType="text/html;charset=gb2312"%> ? ?
? <%@ ? page ? import="java.sql.*"%> ? ?
? <html> ? ?
? <body> ? ?
? <%Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); ? ?
? String ? url="jdbc:oracle:thin:@localhost:1521:orcl"; ? ?
? //orcl為你的數據庫的SID ? ?
? String ? user="scott"; ? ?
? String ? password="tiger"; ? ?
? Connection ? conn= ? DriverManager.getConnection(url,user,password); ? ?
? Statement ? stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ? ?
? String ? sql="select ? * ? from ? test"; ? ?
? ResultSet ? rs=stmt.executeQuery(sql); ? ?
? while(rs.next()) ? {%> ? ?
? 您的第一個字段內容為:<%=rs.getString(1)%> ? ?
? 您的第二個字段內容為:<%=rs.getString(2)%> ? ?
? <%}%> ? ?
? <%out.print("數據庫操作成功,恭喜你");%> ? ?
? <%rs.close(); ? ?
? stmt.close(); ? ?
? conn.close(); ? ?
? %> ? ?
? </body> ? ?
? </html> ? ?
? ?
? 二、jsp連接Sql ? Server7.0/2000數據庫 ? ?
? ?
? ?
? testsqlserver.jsp如下: ? ?
? <%@ ? page ? contentType="text/html;charset=gb2312"%> ? ?
? <%@ ? page ? import="java.sql.*"%> ? ?
? <html> ? ?
? <body> ? ?
? <%Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); ? ?
? String ? url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs"; ? ?
? //pubs為你的數據庫的 ? ?
? String ? user="sa"; ? ?
? String ? password=""; ? ?
? Connection ? conn= ? DriverManager.getConnection(url,user,password); ? ?
? Statement ? stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ? ?
? String ? sql="select ? * ? from ? test"; ? ?
? ResultSet ? rs=stmt.executeQuery(sql); ? ?
? while(rs.next()) ? {%> ? ?
? 您的第一個字段內容為:<%=rs.getString(1)%> ? ?
? 您的第二個字段內容為:<%=rs.getString(2)%> ? ?
? <%}%> ? ?
? <%out.print("數據庫操作成功,恭喜你");%> ? ?
? <%rs.close(); ? ?
? stmt.close(); ? ?
? conn.close(); ? ?
? %> ? ?
? </body> ? ?
? </html> ? ?
? ?
? 三、jsp連接DB2數據庫 ? ?
? ?
? ?
? testdb2.jsp如下: ? ?
? <%@ ? page ? contentType="text/html;charset=gb2312"%> ? ?
? <%@ ? page ? import="java.sql.*"%> ? ?
? <html> ? ?
? <body> ? ?
? <%Class.forName("com.ibm.db2.jdbc.app.DB2Driver ? ").newInstance(); ? ?
? String ? url="jdbc:db2://localhost:5000/sample"; ? ?
? //sample為你的數據庫名 ? ?
? String ? user="admin"; ? ?
? String ? password=""; ? ?
? Connection ? conn= ? DriverManager.getConnection(url,user,password); ? ?
? Statement ? stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ?
? ResultSet.CONCUR_UPDATABLE); ? ?
? String ? sql="select ? * ? from ? test"; ? ?
? ResultSet ? rs=stmt.executeQuery(sql); ? ?
? while(rs.next()) ? {%> ? ?
? 您的第一個字段內容為:<%=rs.getString(1)%> ? ?
? 您的第二個字段內容為:<%=rs.getString(2)%> ? ?
? <%}%> ? ?
? <%out.print("數據庫操作成功,恭喜你");%> ? ?
? <%rs.close(); ? ?
? stmt.close(); ? ?
? conn.close(); ? ?
? %> ? ?
? </body> ? ?
? </html> ? ?
? ?
? 四、jsp連接Informix數據庫 ? ?
? ?
? ?
? testinformix.jsp如下: ? ?
? <%@ ? page ? contentType="text/html;charset=gb2312"%> ? ?
? <%@ ? page ? import="java.sql.*"%> ? ?
? <html> ? ?
? <body> ? ?
? <%Class.forName("com.informix.jdbc.IfxDriver").newInstance(); ? ?
? String ? url ? = ? ?
? "jdbc:informix-sqli://123.45.67.89:1533/testDB:INFORMIXSERVER=myserver; ? ?
? user=testuser;password=testpassword"; ? ?
? //testDB為你的數據庫名 ? ?
? Connection ? conn= ? DriverManager.getConnection(url); ? ?
? Statement ? stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ? ?
? String ? sql="select ? * ? from ? test"; ? ?
? ResultSet ? rs=stmt.executeQuery(sql); ? ?
? while(rs.next()) ? {%> ? ?
? 您的第一個字段內容為:<%=rs.getString(1)%> ? ?
? 您的第二個字段內容為:<%=rs.getString(2)%> ? ?
? <%}%> ? ?
? <%out.print("數據庫操作成功,恭喜你");%> ? ?
? <%rs.close(); ? ?
? stmt.close(); ? ?
? conn.close(); ? ?
? %> ? ?
? </body> ? ?
? </html> ? ?
? ?
? 五、jsp連接Access數據庫 ? ?
? ?
? ?
? <%@page ? import="java.sql.*" ? ?
? import ? ="java.util.*" ? ?
? import ? ="java.io.*" ? ?
? import="java.text.*" ? ?
? contentType="text/html; ? charset=gb2312" ? ?
? buffer="20kb" ? ?
? %><%! ? int ? all,i,m_count; ? ?
? String ? odbcQuery; ? ?
? Connection ? odbcconn; ? ?
? Statement ? odbcstmt; ? ?
? ResultSet ? odbcrs; ? ?
? String ? username,title,content,work,email,url,time,date; ? ?
? String ? datetime; ? ?
? %> ? ?
? <% ? ?
? try{ ? ?
? Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ? ?
? }catch ? (ClassNotFoundException ? e) ? ?
? { ? out.print ? ("驅動程序不存在"); ? ?
? } ? ?
? try{ ? ?
? odbcconn ? = ? DriverManager.getConnection("jdbc:odbc:db1"); ? ?
? odbcstmt ? = ? odbcconn.createStatement(); ? ?
? odbcQuery="Select ? * ? From ? book ? where ? datetime>2001-4-26 ? Order ? By ? datetime ? DESC"; ? ?
? odbcrs=odbcstmt.executeQuery(odbcQuery); ? ?
? int ? i=0; ? ?
? while ? (i<130) ? odbcrs.next(); ? ?
? while ? (odbcrs.next()) ? ?
? { ? ?
? //*/////////////////////////顯示數據庫的內容用于調試程序是用// ? ?
? int ? ii; ? ?
? try{ ? ?
? try{ ? ?
? for ? (ii=1;;ii++) ? ?
? out.print ? ("<br>Cloumn ? "+ii+" ? is: ? "+odbcrs.getString(ii)); ? ?
? }catch ? (NullPointerException ? e) ? { ? ?
? out.print ? ("有空的指針"); ? ?
? } ? ?
? }catch ? (SQLException ? e){ ? ?
? } ? ?
? } ? ?
? odbcrs.close(); ? ?
? odbcstmt.close(); ? ?
? odbcconn.close(); ? ?
? }catch ? (SQLException ? e) ? ?
? { ? out.print ? (e); ? ?
? } ? ?
? %>