国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

美國網(wǎng)站建設(shè)公司百度官方營銷推廣平臺加載中

美國網(wǎng)站建設(shè)公司,百度官方營銷推廣平臺加載中,wordpress網(wǎng)站更改不見,wordpress $wpJDBC(Java Data Base Connectivity的縮寫)是Java程序操作數(shù)據(jù)庫的API,也是Java程序與數(shù)據(jù)庫相交互的一門技術(shù)。 JDBC是Java操作數(shù)據(jù)庫的規(guī)范,由一組用Java語言編寫的類和接口組成,它對數(shù)據(jù)庫的操作提供基本方法&#…

JDBCJava Data Base Connectivity的縮寫)是Java程序操作數(shù)據(jù)庫的API,也是Java程序與數(shù)據(jù)庫相交互的一門技術(shù)。

JDBCJava操作數(shù)據(jù)庫的規(guī)范,由一組用Java語言編寫的接口組成,它對數(shù)據(jù)庫的操作提供基本方法,但對于數(shù)據(jù)庫的細(xì)節(jié)操作由數(shù)據(jù)庫廠商進(jìn)行實(shí)現(xiàn),使用JDBC操作數(shù)據(jù)庫,需要數(shù)據(jù)庫廠商提供數(shù)據(jù)庫的驅(qū)動(dòng)程序。

關(guān)于Java程序與數(shù)據(jù)庫相交互的示意圖如下圖所示。

JDBC(Java Database Connectivity) Java數(shù)據(jù)庫連接,是一組用來按照統(tǒng)一方式訪問數(shù)據(jù)庫的API。它向程序員提供了獨(dú)立于數(shù)據(jù)庫的統(tǒng)一接口,可以使開發(fā)人員不必考慮所用的特定數(shù)據(jù)庫便可編寫應(yīng)用程序,實(shí)現(xiàn)了Java與數(shù)據(jù)庫的互連。

由一組用Java語言編寫的類和接口組成它能夠:與數(shù)據(jù)庫建立連接、發(fā)送SQL語句、處理結(jié)果JDBC的主要接口

java.sql.Driver:任何驅(qū)動(dòng)程序類都應(yīng)該實(shí)現(xiàn)這個(gè)接口。讀取數(shù)據(jù)庫驅(qū)動(dòng)器的信息、提供connect方法用于建立訪問數(shù)據(jù)庫所用的Connection對象

java.sql.DriverManager:用于管理JDBC驅(qū)動(dòng)程序一個(gè)接口(使用此接口能夠獲得與相應(yīng)數(shù)據(jù)庫的連接)

java.sql.Connection:表示驅(qū)動(dòng)程序與數(shù)據(jù)庫之間的連接。(使用此連接可以創(chuàng)建一個(gè)Statement對象)

java.sql.Statement:能對數(shù)據(jù)庫執(zhí)行SQL語句,并得到返回的結(jié)果

java.sql.ResultSet:表示從數(shù)據(jù)庫服務(wù)器返回的結(jié)果集。

ResultSet 有如下幾個(gè)方法

1. boolean? next()

用于將 ResultSet定位到下一行。

ResultSet最初是定位在第0行上的,此時(shí)應(yīng)該先調(diào)用? next()方法將其定位到第1行上,然后才可輸出。當(dāng) ResultSet已經(jīng)到了最后一行時(shí),再調(diào)用next()方法,則返回 false。

2. getXXX()

當(dāng) ResultSet已經(jīng)定位在某一行上時(shí),使用 getXxx ()方法得到這一行上單個(gè)字段的值。針對不同的字段類型,調(diào)用不同的getXxx ()方法(getString(col), getDate(col), getInt(col),…)

例:如果表中的第一個(gè)字段,字段名為“name”是文本型的; 則可以使用getString

(1)getString(“name”)來得到它的值。

如果表中的第三個(gè)字段,字段名為“score”是數(shù)值型的; 則可以使用getFloat(3) getFloat(“score”)來得到它的值。顯示結(jié)果集中所有記錄的前兩列:

while(rs.next())

{

name =rs.getString(1);

phone =rs.getString(2);

System.out.println(name+","+phone);

}

JDBC連接數(shù)據(jù)庫的過程

在了解了JDBC與數(shù)據(jù)庫后,下面向大家介紹使用JDBC操作數(shù)據(jù)的開發(fā)流程,其關(guān)鍵步驟如下:(1)注冊數(shù)據(jù)庫驅(qū)動(dòng) :加載數(shù)據(jù)庫驅(qū)動(dòng),注冊到驅(qū)動(dòng)管理器Class.forName(“com.mysql.jdbc.Driver”);

(2構(gòu)建數(shù)據(jù)庫連接URL? ? ?“JDBC協(xié)議+IP地址或域名+端口+數(shù)據(jù)庫名稱

MySQL連接URL的字符串為:“jdbc:mysql://localhost:3306/test”

3獲取Connection對象

注冊了數(shù)據(jù)庫驅(qū)動(dòng)及構(gòu)建數(shù)據(jù)庫URL后,通過驅(qū)動(dòng)管理器獲取數(shù)據(jù)庫的連接ConnectionConnection對象是JDBC封裝的數(shù)據(jù)庫連接對象,創(chuàng)建此對象后,才可以對數(shù)據(jù)庫進(jìn)行相關(guān)操作:DriverManager.getConnection(url, username, password);

使用JDBC驅(qū)動(dòng)程序訪問數(shù)據(jù)庫

獲取相應(yīng)數(shù)據(jù)庫的jdbc驅(qū)動(dòng)程序,并將它們保存在指定的位置, 然后重新啟動(dòng)tomcat服務(wù)

連接的具體步驟:以打電話通知同學(xué)為你帶書為例…編寫程序的具體步驟編寫程序

加載驅(qū)動(dòng)程序;---打開手機(jī)、找到電話簿:親人、同學(xué)、朋友

定義所要連接數(shù)據(jù)庫的地址;---定位到同學(xué)

建立與數(shù)據(jù)庫的連接;--撥號給他打電話

建立語句對象;--接通后,你(對象)可以跟他(數(shù)據(jù)庫)交流了

聲明并執(zhí)行SQL語句--任務(wù):幫你帶書

處理返回的結(jié)果--給帶或是不能帶

關(guān)閉對象--掛電話

首先應(yīng)該導(dǎo)入java.sql。語句為:?<%@ page import="java.sql.*" %>

利用Class.forName()方法加載某一個(gè)數(shù)據(jù)庫的驅(qū)動(dòng)程序。

語法:Class.forName(“JDBC驅(qū)動(dòng)程序類);

方法:例1:使用JDBC/ODBC橋驅(qū)動(dòng)程序:Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

例2:使用SQLServer的驅(qū)動(dòng)程序:Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”);

經(jīng)過以上其中之一語句的聲明后,驅(qū)動(dòng)程序就會自動(dòng)地加載。

注意:如果classpath路徑中沒有找到所需的驅(qū)動(dòng)程序則會拋出 ClassNotFoundException異常。

通過此步驟,定義要連接的數(shù)據(jù)庫資源

String ODBCURL" jdbc:odbc:dbName";

String sqlserverURL" jdbc:microsoft:sqlserver://host:1433;DatabaseName=dbName ";

String mysqlURL= "jdbc:mysql://host:port/dbName ";

String oracleURL= "jdbc:oracle:thin:@host:port:dbName ";

不同數(shù)據(jù)庫連接的地址不同,這點(diǎn)需要特別注意

URL3部分組成,各個(gè)部分用冒號間隔,格式如下jdbc:<子協(xié)議>:<子名稱>??????

JDBC URL的3部分可分解如下:jdbc:JDBC中的協(xié)議就是jdbc

<子協(xié)議>數(shù)據(jù)庫驅(qū)動(dòng)程序名或數(shù)據(jù)庫連接機(jī)制的名稱。子協(xié)議的典型示例為oracle它用于連接oracle數(shù)據(jù)庫。

<子名稱>一種標(biāo)記數(shù)據(jù)庫的方法。子名稱根據(jù)子協(xié)議的不同而不同,使用子名稱的目的是為定位數(shù)據(jù)庫

例如 jdbc:oracle:thin:@[ip]:[port]:[sid]

子協(xié)議現(xiàn)在是 oracle子名稱現(xiàn)在由四部分構(gòu)成:包括驅(qū)動(dòng)程序類型thin數(shù)據(jù)庫服務(wù)器的IP地址、提供服務(wù)的端口號、數(shù)據(jù)庫的名字

語法:Connection con=DriverManager.getConnection(url,”登錄數(shù)據(jù)庫用戶名,”登錄密碼);

例:以SQLServer連接數(shù)據(jù)庫book為例用戶名為sa,密碼為123

Class.forName(" com.microsoft.jdbc.sqlserver.SQLServerDriver ");

String connStr=" jdbc:microsoft:sqlserver://host:1433;DatabaseName=book";

Connection conn = DriverManager.getConnection(connStr, " sa", " 123");

利用 Connection接口à createStatement() 方法創(chuàng)建語句對象

例:Statement stmt=conn.createStatement();

語句對象用于執(zhí)行SQL語句。該對象負(fù)責(zé)將SQL語句傳遞給數(shù)據(jù)庫管理系統(tǒng)執(zhí)行;聲明SQL語句,并將該語句通過Statement對象提交給服務(wù)器進(jìn)行執(zhí)行。

String sql= " SELECT * FROM book ";//上面的語句用于從book表中查詢所有記錄。

ResultSet resultSet=stmt.executeQuery(sql);//該語句將sql命令提交給數(shù)據(jù)庫服務(wù)器進(jìn)行執(zhí)行,并將執(zhí)行結(jié)果存儲在ResultSet對象中進(jìn)行執(zhí)行。

Statement接口主要有如下三個(gè)方法:

?1. ResultSet? executeQuery(String sql)以sql語句為參數(shù)執(zhí)行sql查詢語句

????? 返回ResultSet結(jié)果集(一個(gè)二維表)

例如:

Statement stmt=con.createStatement();

Stringsql= " SELECT * FROM book ";

ResultSet rs=stmt.executeQuery(sql);

2. int? executeUpdate(String sql)

以sql語句為參數(shù),執(zhí)行sql更新語句及DDL語句,如添加、刪除或修改操作,返回被受影響記錄的條數(shù)。例如:

Statement stmt=con.createStatement();

String sql= " delete FROM book where bookid= " + " ‘12335’ ";

int i=stmt.executeUpdate(sql);

System.out.println(i);

3. boolean execute(String sql)

用于執(zhí)行實(shí)現(xiàn)不知道類型的SQL語句,既可以執(zhí)行查詢語句,也可以執(zhí)行更新語句。

常用于動(dòng)態(tài)的處理未知的SQL語句,事先無法知道該SQL語句的具體類型及執(zhí)行的返回值。

執(zhí)行參數(shù)部分的SQL語句

當(dāng)SQL語句的執(zhí)行結(jié)果是一個(gè)ResultSet結(jié)果集時(shí),本方法返回true并可以通過StatementàgetResultSet()方法得到返回的結(jié)果集

當(dāng)SQL語句執(zhí)行后沒有返回的結(jié)果集時(shí),該方法返回false

Statement對象負(fù)責(zé)將SQL語句傳遞給數(shù)據(jù)庫管理系統(tǒng)執(zhí)行,返回的是一個(gè)ResultSet的對象。 ?ResultSet對象,稱為結(jié)果集是符合條件的所有行的集合。

可以通過(first(), last(), previous(), next(), absolute(int), …) 方法瀏覽可滾動(dòng)結(jié)果集中的內(nèi)容rs.close();//關(guān)閉結(jié)果集

stmt.close();//關(guān)閉語句對象

con.close();//關(guān)閉連接

將打開的資源關(guān)閉。注意:資源關(guān)閉的順序和打開的順序恰恰相反。

異常處理? ?數(shù)據(jù)庫訪問中可能會發(fā)生異常(如無法連接),需要做異常處理

編寫Servlet時(shí),需要將訪問數(shù)據(jù)庫代碼放在try-catch結(jié)構(gòu)中

try { …}catch(SQLExceptionex){ …}

在編寫JSP頁面時(shí),數(shù)據(jù)庫操作可以不寫try-catch, 服務(wù)器將JSP編譯成Servlet時(shí)會自動(dòng)加上try-catch

7.2 通過JDBC連接MySQL數(shù)據(jù)庫

(1)創(chuàng)建名稱為10.1的動(dòng)態(tài)Web項(xiàng)目,將MySQL數(shù)據(jù)庫的驅(qū)動(dòng)包添加至項(xiàng)目的構(gòu)建路徑,構(gòu)建開發(fā)環(huán)境

(2) 創(chuàng)建程序中的主頁index.jsp,在該頁面中加載數(shù)據(jù)庫驅(qū)動(dòng)并創(chuàng)建數(shù)據(jù)庫連接

應(yīng)用程序?yàn)榱四芎蛿?shù)據(jù)庫交互信息,必須首先和數(shù)據(jù)庫建立連接。目前在開發(fā)中常用的連接數(shù)據(jù)庫的方式是加載JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序。

Java語言編寫的數(shù)據(jù)庫驅(qū)動(dòng)程序稱作JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序。JDBC可以調(diào)用本地的JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序和相應(yīng)的數(shù)據(jù)庫建立連接,如圖所示。

使用JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序方式和數(shù)據(jù)庫建立連接需要經(jīng)過2個(gè)步驟

加載JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序

② 和指定的數(shù)據(jù)庫建立連接。

使用JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序訪問數(shù)據(jù)庫時(shí),必須要保證連接數(shù)據(jù)庫的應(yīng)用程序所駐留的計(jì)算機(jī)上安裝有相應(yīng)JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序,比如,Tomcat服務(wù)器上的某個(gè)Web應(yīng)用程序想訪問MySQL數(shù)據(jù)庫管理系統(tǒng)所管理的數(shù)據(jù)庫,那么Tomcat服務(wù)器所駐留的計(jì)算機(jī)上必須要安裝MySQL提供的JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序。

登錄MySQL的官方網(wǎng)站www.mysql.com下載JDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序(JDBC Driver for MySQL)。本教材下載的是mysql-connector-java-5.1.28.zip

解壓后的mysql-connector-java-5.1.28-bin.jar復(fù)制到Tomcat服務(wù)器所使用的JDK的擴(kuò)展目錄中。應(yīng)用程序加載MySQLJDBC-數(shù)據(jù)庫驅(qū)動(dòng)程序代碼如下:

?try{

Class.forName("com.mysql.jdbc.Driver");

?}? catch(Exception e){

?}

Java.sql包中的DriverManager類有兩個(gè)用于建立連接的類方法:

Connection getConnection(java.lang.String, java.lang.String, java.lang.String)

Connection getConnection(java.lang.String)

數(shù)據(jù)庫服務(wù)器占用的端口是3306,假設(shè)MySQL數(shù)據(jù)庫服務(wù)器所駐留的計(jì)算機(jī)的IP地址是192.168.100.1。應(yīng)用程序要和warehouse建立連接,用戶的id和密碼分別是root、99

?那么使用Connection getConnection(java.lang.String, java.lang.String, java.lang.String)

方法建立連接的代碼如下:

try{? String uri = "jdbc:mysql:// 192.168.100.1:3306/warehouse"

String user ="root";

String password ="99";

con = DriverManager.getConnection(uri,user,password);

?}catch(SQLException e){

System.out.println(e);

}

使用Connection getConnection(java.lang.String) 方法建立連接的代碼如下:

try{? String uri =" jdbc:mysql:// 192.168.100.1:3306/warehouse?user=root&password=99";

con = DriverManager.getConnection(uri);

}catch(SQLException e){

System.out.println(e);

}

在某些Web程序中需要避免操作數(shù)據(jù)庫出現(xiàn)中文亂碼,那么需要使用

Connection getConnection(java.lang.String) 方法建立連接,連接中的代碼是(假設(shè)用戶是root,其密碼是99):

String uri = "jdbc:mysql://127.0.0.1/warehouse?"+"user=root&password=&characterEncoding=gb2312";

con = DriverManager.getConnection(uri);

應(yīng)用程序一旦和某個(gè)數(shù)據(jù)庫建立連接,就可以通過SQL語句和該數(shù)據(jù)庫中的表交互信息,比如查詢、修改、更新表中的記錄


JDBCJava Web中的應(yīng)用

1、開發(fā)模式

???????在Java Web開發(fā)使用JDBC,應(yīng)遵循MVC的設(shè)計(jì)思想,從而使用Web程序擁有一定的健壯性、可擴(kuò)展性。JDBC應(yīng)用于Java Web開發(fā)中,處于MVC之中的模型層位置,如下圖所示。

2、分頁查詢

分頁查詢是Java Web開發(fā)之中十分常用的技術(shù)。在數(shù)據(jù)庫量非常大的情況下,不適合將所有數(shù)據(jù)顯示到一個(gè)頁面之中,既給查看帶來有便,又占用了程序及數(shù)據(jù)庫的資源,此時(shí)就需要對數(shù)據(jù)進(jìn)行分頁查詢。

通過JDBC實(shí)現(xiàn)分頁查詢的方法有很多種,而且不同的數(shù)據(jù)庫機(jī)制也提供了不同的分頁方式,兩種非常典型的分頁方法。

1、通過ResultSet的光標(biāo)實(shí)現(xiàn)分頁

2、通過數(shù)據(jù)庫機(jī)制進(jìn)行分頁

連接MySQL數(shù)據(jù)庫和連接Oracle數(shù)據(jù)庫的方法非常類似。只是有兩個(gè)地方需要注意一下

1. 需要把MySQL的驅(qū)動(dòng)程序mysql-connector-java-5.0.4-bin.jar部署到“/WEB-INF/lib/”下。(MySQL驅(qū)動(dòng)程序可以從其官方網(wǎng)站www.mysql.com上下載)

2). 注冊驅(qū)動(dòng)程序和獲取連接的語句變?yōu)?#xff1a;

Class.forName("com.mysql.jdbc.Driver");或者Class.forName("org.gjt.mm.mysql.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://[ip]:[port]/[sid]","Login","password");

例:

<%@page contentType="text/html; charset=GBK" %>

<%@page import="java.sql.*" %>

<%

Class.forName("com.mysql.jdbc.Driver");

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/book","root",“123");

Statement stmt = con.createStatement();

stmt.executeUpdate("create table table1(id int, name varchar(30))");

stmt.executeUpdate("insert into table1 values(10, 'java')");

stmt.executeUpdate("insert into table1 values(20, 'JSP')");

out.print("table1 has been created!");

stmt.close(); con.close();

%>

http://aloenet.com.cn/news/43977.html

相關(guān)文章:

  • 網(wǎng)站如何做前后端分離百度接單平臺
  • 阿里云服務(wù)器搭網(wǎng)站同時(shí)做網(wǎng)盤網(wǎng)絡(luò)服務(wù)器多少錢一臺
  • 公司網(wǎng)頁設(shè)計(jì)圖青島seo排名公司
  • 做阿里巴巴網(wǎng)站應(yīng)怎樣定位怎么找推廣渠道
  • 北京做網(wǎng)站制作的公司哪家好網(wǎng)上營銷
  • 靜態(tài)網(wǎng)站怎么做滾動(dòng)文字國外最好的免費(fèi)建站
  • 網(wǎng)站是生成靜態(tài)好還是動(dòng)態(tài)好青檸影院免費(fèi)觀看電視劇高清
  • 鄭州建站的站長收錄平臺
  • app對接網(wǎng)站登錄要怎么做優(yōu)化營商環(huán)境心得體會2023
  • 拔別人的網(wǎng)站做網(wǎng)站合法嗎百度搜索引擎關(guān)鍵詞
  • 徐州網(wǎng)站開發(fā)培訓(xùn)網(wǎng)站關(guān)鍵詞上首頁
  • 如何將自己做的網(wǎng)站國內(nèi)新聞今日頭條
  • wordpress會員系統(tǒng)seo收費(fèi)標(biāo)準(zhǔn)
  • 深圳住房和城鄉(xiāng)建設(shè)局網(wǎng)站首頁亞馬遜免費(fèi)的關(guān)鍵詞工具
  • 網(wǎng)站建設(shè)規(guī)劃書有哪些內(nèi)容紹興seo排名收費(fèi)
  • 江蘇新有建設(shè)集團(tuán)有限公司官方網(wǎng)站中國站長網(wǎng)站
  • 溫州專業(yè)手機(jī)網(wǎng)站制作哪家便宜搜索引擎推廣是什么意思
  • 網(wǎng)站用Access做數(shù)據(jù)庫鏈接提取視頻的網(wǎng)站
  • wordpress 導(dǎo)入工具插件下載全國推廣優(yōu)化網(wǎng)站
  • 怎么做網(wǎng)站的內(nèi)鏈高質(zhì)量內(nèi)容的重要性
  • 用js做自適應(yīng)網(wǎng)站nba最新交易匯總實(shí)時(shí)更新
  • asp做的網(wǎng)站今日新聞國際最新消息
  • 墻繪做網(wǎng)站靠譜不中國有幾個(gè)搜索引擎
  • 專門做墓志銘的網(wǎng)站百度sem競價(jià)推廣電子書
  • wordpress備份和恢復(fù)seo公司賺錢嗎
  • 公共建設(shè)工程中心網(wǎng)站seo手機(jī)端排名軟件
  • 家政網(wǎng)站制作近期出現(xiàn)的病毒叫什么
  • 做視頻剪輯接私活的網(wǎng)站軟文擬發(fā)布的平臺與板塊
  • 網(wǎng)站建設(shè)入固定資產(chǎn)競彩足球最新比賽
  • b2b電子商務(wù)網(wǎng)站怎么做鄭州聚商網(wǎng)絡(luò)科技有限公司