本文目錄一覽:
jsp連接資料庫方法(詳細的)
上面的給出了jsp內嵌java的最初模式,現在一般是三層結構了即MVC結構,就這個例子我來給你解釋下是怎麼做的,java對連接資料庫提供了統一的介面,各個資料庫廠商根據提供的介面規範開發自己的連接方法順序如下:1、用Class.forName()方法載入驅動:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”).newInstance(); 黑體部分為資料庫廠商自己開發的驅動。2、定義好連接資料庫的url地址,連接串String url=”jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs”;黑體部分為固定寫法不用理會。回到你最初的問題,如何創建資料庫,這裡你可以去baidu下每個資料庫創建的方法,一般資料庫安裝的時候都有默認的資料庫名,和對應的系統管理員工號和密碼,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操作資料庫
可以用JavaBean的方法來實現連接資料庫,方便快捷
配置:tomcat+SQLserver+jsp
首先在這個文件夾下寫Java代碼
..你的tomcat安裝文件夾\webapps\你的站點名\WEB-INF\classes文件夾下conn.java
內容如下:
package test.db;//導入所需包
import java.io.*;
import java.sql.*;
public class conn {
//聲明類成員
public Connection con;
public String URL = “jdbc:odbc:iot”;
public String Message;
public boolean connection() {
try{
//載入JDBC-ODBC橋驅動程序
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}
catch(ClassNotFoundException ex) {
Message = ex.getMessage();
System.exit(-1);
}
try {
//試圖通過JDBC-ODBC橋建立一個與iot數據源的連接
con = DriverManager.getConnection(URL);
//資料庫連接成功
return true;
}
catch(SQLException ex) {
Message = ex.getMessage();
return false;
}
}
//關閉資料庫連接
public boolean close() {
try{
con.close();
return true;
}
catch(Exception ex) {
Message = ex.getMessage();
return false;
}
}
//執行sql查詢語句,返回執行結果集
public ResultSet exeSQL(String sqlstr) {
try{
connection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sqlstr);
return rs;
}catch(Exception ex) {
Message = ex.getMessage();
}
return null;
}
//從指定的結果集rs中返回某欄位str的值
public String getString(ResultSet rs,String str) {
try {
return rs.getString(str);
}catch(Exception ex){
Message = ex.getMessage();
}
return null;
}
}
編譯運行這個Java代碼
第二步,寫一個jsp代碼,命名為conn.jsp放在..你的tomcat安裝文件夾\webapps\你的站點名\inc文件夾下
%@ page import= “java.sql.*”%
jsp:useBean id=”dbBean” scope =”session” class = “test.db.conn” /
%
dbBean.connection();
Connection conn = dbBean.con;
Statement stmt = conn.createStatement();
String sql;
ResultSet rs;
ResultSet rs1;
ResultSet rs2;
ResultSet rs3;
String sql1;
String sql2;
String sql3;
%
以上是配置JavaBean,調用conn.jsp來連接資料庫,加入這段代碼
%@ include file=”../inc/conn.jsp”%
再說說curd
創建(Create)
、更新(Update)、讀取(Read)和刪除(Delete)
SQL中有四種基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由於這是大多數SQL用戶經常用到的,我們有必要在此對它們進行一一說明。在圖1中我們給出了一個名為EMPLOYEES的表。其中的每一行對應一個特定的僱員記錄。
INSERT語句
用戶可以用INSERT語句將一行記錄插入到指定的一個表中。例如,要將僱員John Smith的記錄插入到本例的表中,可以使用如下語句:
INSERT INTO EMPLOYEES VALUES (‘Smith’,’John’,’1980-06-10′,’Los Angles’,16,45000);
通過這樣的INSERT語句,系統將試著將這些值填入到相應的列中。這些列按照我們創建表時定義的順序排列。在本例中,第一個值「Smith」將填到第一個列LAST_NAME中;第二個值「John」將填到第二列FIRST_NAME中……以此類推。
SELECT語句
SELECT語句可以從一個或多個表中選取特定的行和列。因為查詢和檢索數據是資料庫管理中最重要的功能,所以SELECT語句在SQL中是工作量最大的部分。實際上,僅僅是訪問資料庫來分析數據並生成報表的人可以對其他SQL語句一竅不通。
SELECT語句的結果通常是生成另外一個表。在執行過程中系統根據用戶的標準從資料庫中選出匹配的行和列,並將結果放到臨時的表中。在直接SQL(direct SQL)中,它將結果顯示在終端的顯示屏上,或者將結果送到印表機或文件中。也可以結合其他SQL語句來將結果放到一個已知名稱的表中。
SELECT語句功能強大。雖然表面上看來它只用來完成本文第一部分中提到的關係代數運算「選擇」(或稱「限制」),但實際上它也可以完成其他兩種關係運算—「投影」和「連接」,SELECT語句還可以完成聚合計算並對數據進行排序。
SELECT語句最簡單的語法如下:
SELECT columns FROM tables;
當我們以這種形式執行一條SELECT語句時,系統返回由所選擇的列以及用戶選擇的表中所有指定的行組成的一個結果表。這就是實現關係投影運算的一個形式。
UPDATE語句
UPDATE語句允許用戶在已知的表中對現有的行進行修改。
例如,我們剛剛發現Indiana Jones的等級為16,工資為$40,000.00,我們可以通過下面的SQL語句對資料庫進行更新(並清除那些煩人的NULL)。
UPDATE EMPLOYEES SET GRADE = 16, SALARY = 40000 WHERE FIRST_NAME = ‘Indiana’ AND LAST_NAME = ‘Jones’;
上面的例子說明了一個單行更新,但是UPDATE語句可以對多行進行操作。滿足WHERE條件的所有行都將被更新。如果,你想讓Boston辦事處中的所有職員搬到New York,你可以使用如下語句:
UPDATE EMPLOYEES SET BRANCH_OFFICE = ‘New York’ WHERE BRANCH_OFFICE = ‘Boston’;
如果忽略WHERE子句,表中所有行中的部門值都將被更新為’New York’。
UPDATE語句的語法流圖如下面所示:
UPDATE table
SET column = value [{, column = value}]
[ WHERE predicate [ { logical-connector predicate}]];
DELETE語句
DELETE語句用來刪除已知表中的行。如同UPDATE語句中一樣,所有滿足WHERE子句中條件的行都將被刪除。由於SQL中沒有UNDO語句或是「你確認刪除嗎?」之類的警告,在執行這條語句時千萬要小心。如果決定取消Los Angeles辦事處並解僱辦事處的所有職員,這一卑鄙的工作可以由以下這條語句來實現:
DELETE FROM EMPLOYEES WHERE BRANCH_OFFICE = ‘Los Angeles’;
如同UPDATE語句中一樣,省略WHERE子句將使得操作施加到表中所有的行。
DELETE語句的語法流圖如下面所示:
DELETE FROM table
[WHERE predicate [ { logical-connector predicate} ] ];
現在我們完成了數據操作語言(DML)的主要語句的介紹。
基本思路就是這樣,希望可以幫助到你,還有不清楚的可以和我百度聯繫
jsp做網站用什麼資料庫合適
建議用MYSQL,因為大部分都試用這個,您可以先學習,這樣懂的人也多,學習也快,用戶群體也龐大。
jsp選項該怎麼存資料庫
首先在JSP頁面的資料庫處理部分使用:try {statement(…..); }catch(SQLException e) { 1、像上面的語句中,我不知道是複製過來的還是寫錯了: String sql=insert into tb_member values(‘+income+’); 很明顯右邊少了一個引號: String sql=insert into tb_member values(‘+income+’); 2、拋出異常中可能說明是違反主鍵約束:查看資料庫表,將次主鍵約束暫時刪除。 3、拋出異常可能說明字元串被截斷,說明你定義的char類型太短,一般向這樣的欄位保持定義在varchar(20)左右。 4、本來還有可能是類型不匹配或指定參數太多或不夠等,但就你題目中描述,只有一個欄位就能出現這樣的異常了。 出於個人開發經驗的一點點建議: 以後連接資料庫不要這樣去連接,盡量使用Bean去完成,不然程序很混亂,以後維護非常困難。 對資料庫的操作不要顯示地去指定參數和表,尤其是參數,可以使用預處理方式,多步驟連貫操作,可以使用事務來達到數據操作的原子性,當然某些也可以通過資料庫的事務去完成。多步驟的非連貫信息的操作可以使用JDBC 3.0提供的批處理方式去完成以提高對資料庫的批量訪問成10倍得提高效率。 像在做通用模板的時候,對資料庫的表的指定的動態賦予的,當然對其某些欄位的操作也是動態的,那麼資料庫類型和參數的個數也是動態的,如果用上述過程去完成非常困難。尤其還要對一些資料庫內部的空值異常進行處理。 1、公司數據沒有改變,就改變報表的樣式。 2、公司報表總數沒有變,某些報表數據有增加或刪除的現象。 3、公司的報表有增加。 尤其是後面的兩者,如果沒有通用模板,當發生這些情況,就需要重新編碼而且對程序進行從新編譯的過程)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241526.html