1、jsp是java服務端動態網頁技術,主要應用於網頁構建,理論上講不應該在頁面中直接連資料庫。合理的做法是先構建一個java後端,然後在JAVA後端中通過jdbc連接sqlserver。
2、如果一定要在jsp頁面中連資料庫也是可以的。jsp中有專門的sql標簽可以連接資料庫進行操作,這是jstl的內容,需要導入相應的資料庫驅動包。
3、jsp的內容相對來說技術難度都不算特別高,學習起來還是比較容易的。
4、希望對你有幫助。祝你學有所得。
2. jsp連接資料庫方法(詳細的)
上面的給出了jsp內嵌java的最初模式,現在一般是三層結構了即MVC結構,就這個例子我來給你解釋下是怎麼做的,java對連接資料庫提供了統一的介面,各個資料庫廠商根據提供的介面規范開發自己的連接方法順序如下:1、用Class.forName()方法載入驅動:Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 黑體部分為資料庫廠商自己開發的驅動。2、定義好連接資料庫的url地址,連接串Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs";黑體部分為固定寫法不用理會。回到你最初的問題,如何創建資料庫,這里你可以去下每個資料庫創建的方法,一般資料庫安裝的時候都有默認的資料庫名,和對應的系統管理員工號和密碼,DatabaseName=pubs這里說明sql serv 2000中建立了一個名字叫pubs的資料庫jdbc:microsoft:sqlserver://localhost:1433固定寫法唯一不同的是1433埠號,可能你在安裝sql serv 2000的時候改變了該埠號為1500那麼這里就應該為jdbc:microsoft:sqlserver://localhost:15003、定義好DatabaseName=pubs的登錄用戶名和密碼 String user="sa";用戶名
String password="";密碼4、創建Connection對象,通過調用DriverManager.getConnection方法獲得。 Connection conn= DriverManager.getConnection(url,user,password);黑體部分就是你定義好的連接串,用戶名,密碼,不可改變順序。到這里為止資料庫就連接上了,但是連接好了資料庫還要做點什麼,比如列印出來,接下看。5、通過獲得的Connection對象conn創建Statement 對象stmtStatement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);黑體部分是定義ResultSet的一些屬性的,具體含義可以參考JDK的api。6、定義好你准備取得數據的sql語句,比如下面 select * from test說明想從test表中取得所有的數據,關於sql語句可以去查找相關資料庫資料。 String sql="select * from test";定義好語句後,就用上一步創建好的Statement 對象stmt來執行這個sql語句,並返回一個ResultSet對象。
ResultSet rs=stmt.executeQuery(sql);執行完這步後rs中已經取得了test表所有的數據,那麼接下來要展現在網頁上。7、rs.next()對你取得的記錄集做一個循環直到沒有值為止,rs.getString(1)代表你test表中的第一個欄位rs.getString(2)代表你test中的第二個欄位,如果還有更多欄位可以繼續rs.getString(3)..rs.getString(N) while(rs.next()) {%>
您的第一個欄位內容為:<%=rs.getString(1)%>
您的第二個欄位內容為:<%=rs.getString(2)%>
<%}%>8、當所有數據展現完畢,調用close()方法將所有資源關閉。 rs.close();
stmt.close();
conn.close();回顧下大致過程:載入驅動 Class.forName();定義好相關的數據,調用DriverManager.getConnection(driver,user,password)獲得一個資料庫連接conn通過conn創建Statement對象stmt,conn.createStatement();通過stmt執行定義好的sql語句獲得數據集ResultSet rs=stmt.executeQuery(「select * from test」);通過rs.next()方法循環遍歷數據集的數據,通過rs.getString(1)獲得第一條數據的第一個欄位內容,這里要注意的是getString是對應資料庫是字元類型,如果test表的第一個欄位不是字元類型則用rs.getInt(1)獲得。展現完畢後關閉所有資源conn stmt rs close方法。
3. 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連接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
4. 如何用一張JSP頁面連接資料庫,實現查詢,修改操作
1.通過jdbc連接上資料庫,並從中獲取一個連接。(建議由一個工具類提供)
2.創建一個jsp頁面、一個servlet類和一個service業務邏輯類。
3.當點擊查詢按鈕時調用servlet並把文本框中的參數傳遞過去。
4.在servlet中獲取頁面傳遞過來的參數,並調用service中方法(此方法負責條件查詢並返回list集合)
5.servlet中把查詢集合放到request作用域並轉發到jsp頁面進行迭代,把數據取出展示即可。
5. 在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();
6. 教你輕松應對JSP連接MySQL資料庫問題
當您面臨JSP連接MySQL資料庫問題,你首先需要在MySQL資料庫里創建一username表,表裡面創建兩個字元型的欄位,欄位名分別為:uid,pwd,然後插入幾條測試數據。
以下用兩種方式來實現JSP連接MySql資料庫
第一種方式,用JSP實現:
%@ page contentType="text/html;
charset=gb2312" language="java"
import="java.sql.*"%
meta http-equiv="Content-Type" content="text/html; charset=gb2312"
%//*******************************
****************
JDBC_ODBC連接MySql資料庫,不需要設置數據源***********
**********************/
//********** 資料庫連接代碼開始 ******/
//以下幾項請自行修改String server="localhost";
//MYSQL 伺服器的地址String dbname="test";
//MYSQL 資料庫的名字String user="root";
//MYSQL 資料庫的登錄用戶名String pass="chfanwsp";
//MYSQL 資料庫的登錄密碼String port="3306";
//SQL Server 伺服器的埠號,
默認為1433//資料庫連接字元串
String url ="jdbc:mysql://"+server+":"+port+"/"+dbname+"?
user="+user+"passWord="+pass+"useUnicode
=truecharacterEncoding=GB2312";
//載入驅動程序Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//建立連接Connection conn= DriverManager.getConnection(url);
//創建語句對象Statement stmt=conn.createStatement
(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
// **** 資料庫連接旅磨代碼結束 ******* String sql="select * from username";
ResultSet rs=stmt.executeQuery(sql);
//rs.first();while(rs.next()){out.print("用戶名:");
out.print(rs.getString("uid")+" 密碼:");
out.println(rs.getString("pwd")+"br");}
rs.close();stmt.close();conn.close();%
第二種方式,用JavaBean來實現:
DBConnMySql.java編譯以後的Class文件應該放在Web-INFclassesconn目錄下。
package conn; //導入包import java.sql.*;
//導入資料庫操作的類public class DBConnMySql
//構造方法,拆察斗初始化{private Connection conn;
//連接對象private Statement stmt;
//語句對象private ResultSet rs;
//結果集對象private String MySqldriver;
//MYSQL Server驅動程序字元串private String MySqlURL;
//MYSQL Server連接字元串//*********************************
用 org.gjt.mm.mysql.Driver 驅動
* 該方沒臘法取得連接所需各種參數,組成連接字元串,
然後再建立連接* server;dbname,user,pass,port
分別表示MYSQL 伺服器的地址,
* 資料庫,用戶名,密碼,埠
**********************************/
public Connection getConnToMySql
(String server,String dbname,String user,String pass,String port)
{//MYSQl驅動程序MySqldriver = "org.gjt.mm.mysql.Driver";
MySqlURL = "jdbc:mysql://";
//連接字元串一部分try{//完整的連接字元串MySqlURL
=MySqlURL+server+":"+port+"/"+dbname+"?user=
"+user+"password="+pass+"useUnicode
=truecharacterEncoding=GB2312";
Class.forName(MySqldriver);conn
= DriverManager.getConnection(MySqlURL);}
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();}}}
這個文件只是實現了資料庫的連接,下面再寫一個測試文件,就是用SQL語句從資料庫里查詢出記錄,以驗證我們資料庫的連接是否成功。
connmysql.jsp文件源代碼如下:
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.DBConnMySql"/
% //以下幾項請自行修改String server="localhost";
//MYSQL 伺服器的地址String dbname="test";
//MYSQL 資料庫的名字String user="root";
//MYSQL 資料庫的登錄用戶名String pass="chfanwsp";
//MYSQL 資料庫的登錄密碼String port="3306";
//SQL Server 伺服器的埠號,默認為1433Connection
conn=DBConn.getConnToMySql
(server,dbname,user,pass,port);
Statement stmt=conn.createStatement
(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_READ_ONLY);
String sql="select * from username";
String sql1="insert into username (uid,pwd) values
('夢想年華','夢想年華')";stmt.executeUpdate(sql1);
ResultSet rs=stmt.executeQuery(sql);while(rs.next())
{out.print("用戶名:");out.print(rs.getString("uid")+" 密碼:");
out.println(rs.getString("pwd")+"br");}
//rs.close();//stmt.close();//conn.close();DBConn.close();%
7. jsp如何連接資料庫
1、先打開我們編輯運行JSP的開發環境,我們新建一個java web項目。