現在有好多初學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); } %> |