jsp鏈接資料庫
首先你的機器上得裝有一款資料庫,通常是Oracle,Ms sql,MySQL等,不考慮框架等,jsp中主要是利用jdbc進行連接資料庫
1,打開資料庫服務(你已經設計好了資料庫)
2,在class-path中添加相應資料庫的連接jar包,
3.利用jdbc進行操作
例如:
JDBC - 環境設置:
請確認您已完成以下設置:
核心java安裝
SQL 或 MySQL資料庫安裝
除上述者外,需要建立一個資料庫,為本程測試項目使用。假設這是EMP,在同一個資料庫上創建表Employees。
創建JDBC應用程序:
參與建立一個JDBC應用程序,本教程中按六個步驟進行:
導入包:
這需要你有軟體包包含了資料庫編程所需的JDBC類。大多數情況下,使用import java.sql.* 就足夠了,如下所示:
//STEP 1. Import required packages
import java.sql.*;
注冊JDBC驅動程序:
這需要初始化驅動程序,這樣就可以打開與資料庫的通信信道。以下是代碼片段實現這一目標:
//STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
打開一個連接:
這需要使用DriverManager.getConnection()方法來創建一個Connection對象,它代表一個物理連接的資料庫,如下所示:
//STEP 3: Open a connection
// Database credentials
static final String USER = "username";
static final String PASS = "password";
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
執行一個查詢:
這需要使用一個對象類型Statement或PreparedStatement構建,並提交一個SQL語句到資料庫。如下:
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "SELECT id, first, last, age FROM Employees";
ResultSet rs = stmt.executeQuery(sql);
如果有一個SQL UPDATE,INSERT或DELETE語句,那麼需要下面的代碼片段:
//STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn.createStatement();
String sql;
sql = "DELETE FROM Employees";
ResultSet rs = stmt.executeUpdate(sql);
從結果集中提取數據:
這一步是必需的情況下,從資料庫中獲取數據。可以使用適當的ResultSet.getXXX()方法來檢索的數據結果如下:
//STEP 5: Extract data from result set
while(rs.next()){
//Retrieve by column name
int id = rs.getInt("id");
int age = rs.getInt("age");
String first = rs.getString("first");
String last = rs.getString("last");
//Display values
System.out.print("ID: " + id);
System.out.print(", Age: " + age);
System.out.print(", First: " + first);
System.out.println(", Last: " + last);
}
清理環境:
應該明確地關閉所有的資料庫資源,對依賴於JVM的垃圾收集如下:
//STEP 6: Clean-up environment
rs.close();
stmt.close();
conn.close();
B. jsp連接sql資料庫
1樓的兄弟說的對,那是資料庫的用戶和用戶密碼,在sql的企業管理器里,打開資料庫以後,-》安全性->登陸-》(右側)有個sa-》這個是你的資料庫的初始的用戶,然後查看他的屬性,就可以修改密碼了,也可以在登陸哪裡,右擊新建登陸可以創建新用戶。
C. 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放回資料庫連接池。
D. jsp怎麼連接mysql資料庫
eclipse,我用的是eclipse,也可以用其他的開發工具。
tomcat,tomcat是用來做伺服器的,如果eclipse還沒有配置tomcat伺服器,就要先配置好tomcat伺服器。
MySQL,本文用的是MySQL資料庫,讀者也可以嘗試用其他的資料庫,但是連接驅動就要換成相應資料庫的連接驅動。
連接驅動 mysql-connector-java-3.1.14-bin.jar,可以從網上下載。
打開eclipse,菜單欄下,File-new,打開Dynamic Web Project,創建一個jsp project,為方便起見,本文直接在jsp頁面里寫java代碼進行資料庫的連接。。大部分網友應該都可以看懂這段代碼的涵義,這里就不贅述了。
其中需要注意的是 String url="jdbc:mysql://localhost:3306/mydb" 其中的3306是MySQL安裝時的埠號,默認的是3306,如果你安裝MySQL時更改了埠號就要在這里填寫你更改的埠號。下面是我的jsp文檔
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.sql.Connection" %>
<%@page import="java.sql.*" %>
<%@page import="java.sql.DriverManager;" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1" align="center">
<tr>
<td>書名</td>
<td>作者</td>
</tr>
<%
String driverClass="com.mysql.jdbc.Driver";
String url="jdbc:mysql://localhost:3306/mydb";
String user="root";
String password="1234";
String a="zhangsan";
Connection conn;
try{
Class.forName(driverClass);
conn=DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement();
String sql="select * from books";
ResultSet rs=stmt.executeQuery(sql);
while(rs.next()){
%>
<tr>
<td><%=rs.getString("bookname") %></td>
<td><%=rs.getString("writer") %></td>
</tr>
<%
}
}
catch(Exception ex){
ex.printStackTrace();
}
%>
</table>
</body>
</html>
然後在這個project的WebContentWEB-INFlib的文件夾里添加之前提到的連接驅動mysql-connector-java-3.1.14-bin.jar,將其復制到lib的文件夾中。保存項目,然後運行,就會在網頁中出現表格。
3
是不是很簡單呢,希望這篇經驗能夠給大家帶來方便。
要確保在MySQL中存在mydb資料庫,mydb中已創建books表格,不然會提示錯誤的。
方法/步驟
注意事項
E. jsp頁面連接MySql資料庫
"insert into rht (name,password) values=('jj','1234')";
改成
"insert into rht (name,password) values('jj','1234')";
你這個=號是什麼東西?
看一下SQL的語法
以後要用SQL語句之前,先在SQL裡面確定這句話能跑過,沒有錯,再粘貼到jsp裡面來
F. jsp如何連接資料庫
1、先打開我們編輯運行JSP的開發環境,我們新建一個java web項目。
G. jsp資料庫連接
//導入JDBC相關類
import java.sql.*;
//導入MySQL的JDBC相關類
import org.gjt.mm.mysql.*;
public class MysqlExample{
Connection conn=null;//定義資料庫連接對象
Statement st=null;//定義資料庫執行象
//定義連接資料庫的方法
public void connectToMySQL(){
try{
Class.forName("org.gjt.mm.mysql.Driver");
/*載入JDBC驅動程序,如果找不到會出錯,如果頻繁的對資料庫進行操作,可以把
載入的內容寫在類開頭的static塊里,因為驅動只要載入一次就夠了,沒有必要在每次建立連接時載入驅動.
*/
/*
如果查找成功就嘗試連接資料庫,DriverManager的getConnection的方法有3個參數:
1.資料庫的URL,MySQL為jdbc:mysql://hostname.port/databasename
2.資料庫用戶名
3.資料庫密碼
以下的參數只是舉例而已
*/
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/person","root","");
//如果要用到事務,必須如下設置
/*
conn.setAutoCommit(false);
*/
System.out.println("OK");//只是便於自己查看是否連接成功了
}catch(Exception e){//捕獲錯誤
System.out.println(e.getMessage());
}
}
到此為止是完成了用connectToMySQL方法封裝了對資料庫的連接,當然你還可以對add,remove,query等方法對資料庫里操作進行封裝,最後就是一個定義一個方法connectClose(),調用close(),將st和conn關閉,當然在關閉conn之前記得conn.commit();
H. 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方法。
I. jsp資料庫怎麼連接 (初學者)
//連接access資料庫
String url="jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=F:\\jspx\\aa.mdb";
//連接SQL Server資料庫,用microsoft提供的驅動,可以到microsoft的網站下載
//String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=whebn";
//用jtds sqlserver驅動連接sqlserve資料庫,需要在lib中加jtds1-1.jar,可以在www.javafan.net下載到
//String url="jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=whebn";
//連接access用的jdbc-odbc橋
//String url="jdbc:odbc:hebn";
String user="admin";
String pwd="";
Connection conn=null;
ResultSet rs=null;
//用jtds sqlserver驅動連接sqlserve資料庫,需要在lib中加jtds1-1.jar
//Class.forName("net.sourceforge.jtds.jdbc.Driver");
//連接access資料庫用到的
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//連接sql資料庫需要配置sqlserver的三個jar文件
//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
//准備完畢,建立連接
conn = DriverManager.getConnection(url,user,pwd);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
rs=stmt.executeQuery("select * from article_info");
while(rs.next())
{
out.println("<br>");
out.println(rs.getString(2));
out.println("<br>");
out.println(rs.getString(1));
out.println("<br>");
out.println(rs.getString(3));
out.println("<br>");
}
//後期處理
if(conn!=null){conn.close();}
if(stmt!=null){stmt.close();}
J. jsp連接資料庫代碼
你也敢管這個叫jsp?
//驅動類的名字,不知道干什麼的?就是尋找驅動的依據
String strDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
//資料庫地址exam應該是所謂服務名,因為你驅動類用的是sun所有不知道你是用的什麼庫
String strDBUrl="jdbc:odbc:exam";
//得到連接,後面還得用DriverManager.ceratConnction()來完成實例化有三個參數,地址,用戶名,密碼
private Connection conn=null;
//得到狀態,用來操作sql用的,要用Connection的實例也就是conn來創建他的實例conn.cerateStatemnt()
private Statement stmt=null;
//結果集,查詢的話肯定會有結果返回的,這個就是結果的集合了
ResultSet rs=null;
後面都是try catch了,不過看這個寫的很不規范,關閉連接應該放在finally裡面
別的就真沒什麼好說了,如果try catch finnaly不知道怎麼用那就不是資料庫連接不懂是java語法不明白,建議你另開一題問問try catch怎麼用,否則解答的太瑣碎難免讓人理解不了