現在有好多初學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連接Sybase資料庫
testMySQL.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%
<%@ page import="Java.sql.*"%
<html
<body
<%Class.forName("com.sybase.JDBC.SybDriver").newInstance();
String url =" jdbc:sybase:Tds:localhost:5007/tsdata";
//tsdata為你的資料庫名
Properties sysProps = System.getProperties();
SysProps.put("user","userid");
SysProps.put("password","user_password");
Connection conn= DriverManager.getConnection(url, SysProps);
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連接MySQL資料庫
testmysql.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%
<%@ page import="Java.sql.*"%
<html
<body
<%Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="JDBC:mysql://localhost/softforum?user=softpassword=soft1234useUnicode=truecharacterEncoding=8859_1"
//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連接PostgreSQL資料庫
testMySQL.jsp如下:
<%@ page contentType="text/html;charset=gb2312"%
<%@ page import="Java.sql.*"%
<html
<body
<%Class.forName("org.postgresql.Driver").newInstance();
String url ="JDBC:postgresql://localhost/soft"
//soft為你的資料庫名
String user="myuser";
String password="mypassword";
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
B. jsp中封裝資料庫操作,例如資料庫連接,條件查詢等到javabean中,怎麼做
封裝到bean裡面有點麻煩,等於自己實現簡易orm了,況且多表查詢時還不好操作,把結果集放到List裡面還好
C. 求救!jsp中無法使用自定義的封裝資料庫操作的類
那沒關系的,你在jsp頁面中把異常抓上,另外你的資料庫連接類寫的太復雜了~這樣不太好,就返回一個連接的方法就行,還有一個返回查詢數據集的方法就可以了~
D. 用JSP的Model2方式開發,連接資料庫的代碼封裝在哪裡
通常情況下,如果你使用的是普通jdbc的連接方式,可以創建一個公用類來完成資料庫的連接,專你可以視之為屬javabean,因為你的連接類會被頻繁調用嘛,如果你想採用
持久層
的模式來完成連接資料庫與操作資料庫的工作,那連接資料庫的代碼已經封裝在持久層框架中,或者說已經被配置好了,以
hibernate
為例,你只需要在servlet中調用實例化的數據連接對象即DAO即可,DAO中應該包含了從資料庫的連接(連接參數已經在
配置文件
中准備好了)到完成
資料庫操作
的一系列方法。
總之是不建議在servlet中植入資料庫連接代碼,
耦合度
太高。
E. 在jsp編程中如何連接資料庫(jsp與資料庫連接)
首先你的機器上得裝有一款資料庫,通常是Oracle,Mssql,MySQL等,不考慮框架等,jsp中主要是利用jdbc進行連接資料庫
1,打開資料庫服務(你已經設計好了資料庫)
2,在class-path中添加相應或卜緩資料庫的連接jar包,3.利用jdbc進行操作
例如:
JDBC-環境設置:
請確認您已完成以下設置:
核心JAVA安裝
SQL或MySQL資料庫安裝
除上述者外,需要建立一個資料庫,為本程測試項目使用。假設這是EMP,在同一個資料庫上創建表Employees。
創建JDBC應用程序:
參與建立一個JDBC應用程序,本教程中按六個步驟進行:
導入包:
這需要你有軟體包包含了資料庫編程所需的JDBC類。大多數情況下,使用importjava.sql.*就足夠了,如下所示:
//STEP1.Importrequiredpackages
importjava.sql.*;
注冊JDBC驅動程序:
這需要初始化驅動程序,這樣就可以打開與資料庫的通信信衫模道。以下是代碼片段實現這一目標:
//STEP2:RegisterJDBCdriver
Class.forName("com.mysql.jdbc.Driver");
打開一個連接:
這需要使用.()方法來創建一個Connection對象,它代表一個物理連接的資料庫,如下所示:
//STEP3:Openaconnection
//Databasecredentials
staticfinalStringUSER="username";
staticfinalStringPASS="password";
System.out.println("Connectingtodatabase...");
conn=.(DB_URL,USER,PASS);
執行一個查詢:
這需要使用一個對象類型Statement或構建,並提交一個SQL語弊扮句到資料庫。如下:
//STEP4:Executeaquery
System.out.println("Creatingstatement...");
stmt=conn.();
Stringsql;
sql="SELECTid,first,last,ageFROMEmployees";
ResultSetrs=stmt.(sql);
如果有一個SQLUPDATE,INSERT或DELETE語句,那麼需要下面的代碼片段:
//STEP4:Executeaquery
System.out.println("Creatingstatement...");
stmt=conn.();
Stringsql;
sql="DELETEFROMEmployees";
ResultSetrs=stmt.(sql);
從結果集中提取數據:
這一步是必需的情況下,從資料庫中獲取數據。可以使用適當的ResultSet.getXXX()方法來檢索的數據結果如下:
//STEP5:Extractdatafromresultset
while(rs.next()){
//Retrievebycolumnname
intid=rs.getInt("id");
intage=rs.getInt("age");
Stringfirst=rs.getString("first");
Stringlast=rs.getString("last");
//Displayvalues
System.out.print("ID:"id);
System.out.print(",Age:"age);
System.out.print(",First:"first);
System.out.println(",Last:"last);
}
清理環境:
應該明確地關閉所有的資料庫資源,對依賴於JVM的垃圾收集如下:
//STEP6:Clean-upenvironment
rs.close();
stmt.close();
conn.close();