1、jsp是java服務端動態網頁技術,主要應用於網頁構建,理論上講不應該在頁面中直接連資料庫。合理的做法是先構建一個java後端,然後在JAVA後端中通過jdbc連接sqlserver。
2、如果一定要在jsp頁面中連資料庫也是可以的。jsp中有專門的sql標簽可以連接資料庫進行操作,這是jstl的內容,需要導入相應的資料庫驅動包。
3、jsp的內容相對來說技術難度都不算特別高,學習起來還是比較容易的。
4、希望對你有幫助。祝你學有所得。
㈡ jsp怎麼連接sql資料庫
1.將資料庫驅動程序的JAR文件放在Tomcat的 common/lib 中; 2.在server.xml中設置數據源,以MySQL資料庫為例,如下: 在 節點中加入, 屬性說明:name,數據源名稱,通常取」jdbc/XXX」的格式; type,」javax.sql.DataSource」; password,資料庫用戶密碼; driveClassName,資料庫驅動; maxIdle,最大空閑數,資料庫連接的最大空閑時間。超過空閑時間,資料庫連 接將被標記為不可用,然後被釋放。設為0表示無限制。 MaxActive,連接池的最大數據庫連接數。設為0表示無限制。 maxWait ,最大建立連接等待時間。如果超過此時間將接到異常。設為-1表示 無限制。 3.在你的web應用程序的web.xml中設置數據源參考,如下: 在節點中加入, MySQL DB Connection Pool jdbc/DBPool javax.sql.DataSource Container Shareable 子節點說明: description,描述信息; res-ref-name,參考數據源名字,同上一步的屬性name; res-type,資源類型,」javax.sql.DataSource」; res-auth,」Container」; res-sharing-scope,」Shareable」; 4.在web應用程序的context.xml中設置數據源鏈接,如下: 在節點中加入, 屬性說明:name,同第2步和第3步的屬性name值,和子節點res-ref-name值; type,同樣取」javax.sql.DataSource」; global,同name值。 至此,設置完成,下面是如何使用資料庫連接池。 1.建立一個連接池類,DBPool.java,用來創建連接池,代碼如下: import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.sql.DataSource; public class DBPool { private static DataSource pool; static { Context env = null; try { env = (Context) new InitialContext().lookup("java:comp/env"); pool = (DataSource)env.lookup("jdbc/DBPool"); if(pool==null) System.err.println("'DBPool' is an unknown DataSource"); } catch(NamingException ne) { ne.printStackTrace(); } } public static DataSource getPool() { return pool; } } 2.在要用到資料庫操作的類或jsp頁面中,用DBPool.getPool().getConnection(),獲得一個Connection對象,就可以進行資料庫操作,最後別忘了對Connection對象調用close()方法,注意:這里不會關閉這個Connection,而是將這個Connection放回資料庫連接池。
㈢ 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方法。
㈣ 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
㈤ jsp資料庫連接
跟著我做就是了,這個可是我現場測試和編寫的哦!!沒有任何
(1)把mysql的驅動放到tomcat的lib中 驅動是這個
http://ftp.up.ac.za/pub/windows/MySQL/Downloads/Connector-J/mysql-connector-java-5.1.6.zip
解壓後在lib中有mysql-connector-java-5.1.6.jar.把這個文件放到tomcat的lib中5.X的在tomcat/common/lib 6.0在tomcat/lib
(2)建一個很簡單的表person就兩個欄位username和password,資料庫名和資料庫密碼換成你的就是了
create database ibatis;--創建資料庫
use ibatis;--使用資料庫,以下表在該資料庫中
create table person(username varchar(20),password varchar(20));--創建person表
(3)創建index.jsp和regist.jsp
1:
index.jsp 提交表單頁面
<%@ page pageEncoding="GBK"%>
<html>
<head>
</head>
<body>
<form action="regist.jsp" method="post">
username :<input type = "text" name="name"/>
password :<input type = "password" name="password"/>
<input type = "submit" value="提交"/>
</form>
</body>
</html>
2:regist.jsp //用戶注冊同時顯示所有用戶
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.sql.*"%>
<body>
<center>
<%
request.setCharacterEncoding("GBK");
String uname=request.getParameter("name"); //從表單獲得
String pwd=request.getParameter("password"); //從表單獲得
String driver="com.mysql.jdbc.Driver"; //我用的是mysql官方驅動你自己換一下就是了 在這里有
String url="jdbc:mysql://localhost:3306/ibatis?user=root&password=yanghao"; //這是資料庫連接地址Ibatis是資料庫名稱,user是用戶.password就是你的用戶名,根據實際情況你修改
String sql="INSERT INTO person (username,password) VALUES('"+uname+"','"+pwd+"')"; //把index.jsp提交的兩個數據插進資料庫的資料庫語句
Connection conn=null; //資料庫連接
Statement stmt=null;
ResultSet rs = null; //查詢結果
%>
<%
Class.forName(driver); //載入驅動
conn=DriverManager.getConnection(url); //獲得連接
stmt=conn.createStatement();
stmt.execute(sql);//存入資料庫
rs=stmt.executeQuery("select * from person"); //查詢所有person語句
%>
<%
if(rs!=null){ //判斷以下
while(rs.next()){
String username=rs.getString(1);
String password=rs.getString(2);
%>
<table>
<tr>
<td><%=username %></td>
<td><%=password %></td>
</tr>
</table>
<%
//關閉資料庫連接,和開始的順序是反的
rs.close();//關閉結果集
stmt.close();//關閉Statement
conn.close();//關閉資料庫連接
//ok完成了插入和查詢操作
}
}
%>
</center>
</body>
㈥ 教你輕松應對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();%
㈦ 在jsp編程中如何連接資料庫
用JDBC技術x0dx0a創建資料庫連接,分為以下幾步:x0dx0a1.裝載並注冊資料庫的JDBC驅動程序x0dx0a2.取得資料庫連接x0dx0a3.建立Statement 對象x0dx0a4.准備並執行調用SQL語句x0dx0a5.處理ResultSet中的記錄集x0dx0a6.釋放資源x0dx0a第一步x0dx0a載入驅動程序x0dx0a try{ //裝載MySQL資料庫驅動x0dx0a Class.forName("com.mysql.jdbc.Driver");x0dx0a }x0dx0a catch(ClassNotFoundException e) x0dx0a { x0dx0a e.printStackTrace();x0dx0a }x0dx0a注意:在使用JDBC之前,要在文件前導入有關SQL的類即x0dx0a import java.sql.*x0dx0a第二步x0dx0a取得資料庫連接x0dx0atry{x0dx0aString url="jdbc:mysql://localhost:3306/student;x0dx0aString user="root";x0dx0aString password="1234";x0dx0acon=DriverManager.getConnection(url,user,password);x0dx0a}x0dx0acatch(SQLException e)x0dx0a{x0dx0a e.printStackTrace();x0dx0a }x0dx0a第三步x0dx0a建立Statement 對象x0dx0atry{x0dx0a Statement sql=con.createStatement();x0dx0a }x0dx0acatch(SQLException e)x0dx0a {x0dx0a e.printStackTrace();x0dx0a }x0dx0a第四步x0dx0a執行各種SQL語句x0dx0atry{x0dx0a ResultSet rs=sql.executeQuery(x0dx0a "select * from student");x0dx0a }x0dx0acatch(SQLException e)x0dx0a {x0dx0a e.printStackTrace();x0dx0a }x0dx0a第五步x0dx0a獲取查詢結果x0dx0a ResultSet rs=sql.executeQuery(x0dx0a "select * from student");x0dx0a while(rs.next())x0dx0a {x0dx0a rs.getString(2)或者是rs.getString("name");x0dx0a rs.getInt(3)或者是rs.getInt("age");x0dx0a }x0dx0a注意x0dx0a只有select語句才會有結果集返回;x0dx0aResultSet對象一次只能看到一個數據行x0dx0a使用next()方法走到下一數據行x0dx0a獲得一行數據後,ResultSet對象可以使用getXxx()方法獲得欄位值,將位置索引或欄位名傳遞給get第六步x0dx0a關閉創建的各個對象(後打開的先關)x0dx0a rs.close();x0dx0a sql.close();x0dx0a con.close();Xxx方法()即可。
㈧ jsp如何連接資料庫
1、先打開我們編輯運行JSP的開發環境,我們新建一個java web項目。