myeclipse中連接mysql數(shù)據(jù)庫(kù)示例代碼
1. 環(huán)境配置
下載地址:http://www.mysql.com/downloads/mysql/ 真麻煩,下載的話還需要注冊(cè)和登錄以及填個(gè)表。上面的信息還挺全的,亂填的信息也是可以接受的~~ 下載后按提示安裝即可,最后設(shè)置登錄mysql用的密碼。安裝完成后,測(cè)試連接數(shù)據(jù)庫(kù)。在開始-程序中點(diǎn)擊MYSQL5.5 Command Line cilent,輸入剛才設(shè)定的密碼后,應(yīng)該后就能連上mysql服務(wù)器了。
在安裝后的軟件包中,mysql_server\Connector J XXXX中可以找到一個(gè)jar包,這個(gè)jar包是java程序連接mysql數(shù)據(jù)庫(kù)必須的。若沒(méi)有這個(gè)包,程序代碼將提示:ClassNotFoundExceptioncom.mysql.jdbc.Driver的錯(cuò)誤。
新建一個(gè)java項(xiàng)目,并在項(xiàng)目中新建一個(gè)存放jar 包的文件夾(如 lib),將mysql-connector-java-X.X.X-bin.jar 復(fù)制到文件夾中,選中jar包右擊--->Build Path--->Add To Build Path,即可。若新建的是一個(gè)web項(xiàng)目,而放在WEB-INF下的lib文件夾中即可。
2. JDBC介紹
JDBC是Sun公司制定的一個(gè)可以用Java語(yǔ)言連接數(shù)據(jù)庫(kù)的技術(shù)。
2.1 JDBC基礎(chǔ)知識(shí)
JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),它由一組用Java語(yǔ)言編寫的類和接口組成。JDBC為數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫(kù)應(yīng)用程序,并且可跨平臺(tái)運(yùn)行,并且不受數(shù)據(jù)庫(kù)供應(yīng)商的限制。
1、跨平臺(tái)運(yùn)行:這是繼承了Java語(yǔ)言的“一次編譯,到處運(yùn)行”的特點(diǎn);
2、不受數(shù)據(jù)庫(kù)供應(yīng)商的限制:巧妙在于JDBC設(shè)有兩種接口,一個(gè)是面向應(yīng)用程序?qū)?,其作用是使得開發(fā)人員通過(guò)SQL調(diào)用數(shù)據(jù)庫(kù)和處理結(jié)果,而不需要考慮數(shù)據(jù)庫(kù)的提供商;另一個(gè)是驅(qū)動(dòng)程序?qū)?,處理與具體驅(qū)動(dòng)程序的交互,JDBC驅(qū)動(dòng)程序可以利用JDBC API創(chuàng)建Java程序和數(shù)據(jù)源之間的橋梁。應(yīng)用程序只需要編寫一次,便可以移到各種驅(qū)動(dòng)程序上運(yùn)行。Sun提供了一個(gè)驅(qū)動(dòng)管理器,數(shù)據(jù)庫(kù)供應(yīng)商——如MySQL、Oracle,提供的驅(qū)動(dòng)程序滿足驅(qū)動(dòng)管理器的要求就可以被識(shí)別,就可以正常工作。所以JDBC不受數(shù)據(jù)庫(kù)供應(yīng)商的限制。
JDBC API可以作為連接Java應(yīng)用程序與各種關(guān)系數(shù)據(jù)庫(kù)的紐帶,在帶來(lái)方便的同時(shí)也有負(fù)面影響,以下是JDBC的優(yōu)、缺點(diǎn)。
優(yōu)點(diǎn)如下:
操作便捷:JDBC使得開發(fā)人員不需要再使用復(fù)雜的驅(qū)動(dòng)器調(diào)用命令和函數(shù);
可移植性強(qiáng):JDBC支持不同的關(guān)系數(shù)據(jù)庫(kù),所以可以使同一個(gè)應(yīng)用程序支持多個(gè)數(shù)據(jù)庫(kù)的訪問(wèn),只要加載相應(yīng)的驅(qū)動(dòng)程序即可;
通用性好:JDBC-ODBC橋接驅(qū)動(dòng)器將JDBC函數(shù)換成ODBC;
面向?qū)ο?/strong>:可以將常用的JDBC數(shù)據(jù)庫(kù)連接封裝成一個(gè)類,在使用的時(shí)候直接調(diào)用即可。
缺點(diǎn)如下:
訪問(wèn)數(shù)據(jù)記錄的速度受到一定程度的影響;
更改數(shù)據(jù)源困難:JDBC可支持多種數(shù)據(jù)庫(kù),各種數(shù)據(jù)庫(kù)之間的操作必有不同,這就給更改數(shù)據(jù)源帶來(lái)了很大的麻煩
2.2 JDBC連接數(shù)據(jù)庫(kù)的流程及其原理
1) 在開發(fā)環(huán)境中加載指定數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序。例如,接下來(lái)的實(shí)驗(yàn)中,使用的數(shù)據(jù)庫(kù)是MySQL,所以需要去下載MySQL支持JDBC的驅(qū)動(dòng)程序;而開發(fā)環(huán)境是MyEclipse,將下載得到的驅(qū)動(dòng)程序加載進(jìn)開發(fā)環(huán)境中(具體示例的時(shí)候會(huì)講解如何加載)。
2) 在Java程序中加載驅(qū)動(dòng)程序。在Java程序中,可以通過(guò) “Class.forName(“指定數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序”)” 方式來(lái)加載添加到開發(fā)環(huán)境中的驅(qū)動(dòng)程序,例如加載MySQL的數(shù)據(jù)驅(qū)動(dòng)程序的代碼為: Class.forName(“com.mysql.jdbc.Driver”)
3) 創(chuàng)建數(shù)據(jù)連接對(duì)象:通過(guò)DriverManager類創(chuàng)建數(shù)據(jù)庫(kù)連接對(duì)象Connection。DriverManager類作用于Java程序和JDBC驅(qū)動(dòng)程序之間,用于檢查所加載的驅(qū)動(dòng)程序是否可以建立連接,然后通過(guò)它的getConnection方法,根據(jù)數(shù)據(jù)庫(kù)的URL、用戶名和密碼,創(chuàng)建一個(gè)JDBC Connection 對(duì)象。如:Connection connection = DriverManager.getConnection(“連接數(shù)據(jù)庫(kù)的URL", "用戶名", "密碼”)。其中,URL=協(xié)議名+IP地址(域名)+端口+數(shù)據(jù)庫(kù)名稱;用戶名和密碼是指登錄數(shù)據(jù)庫(kù)時(shí)所使用的用戶名和密碼。具體示例創(chuàng)建MySQL的數(shù)據(jù)庫(kù)連接代碼如下:
4) 創(chuàng)建Statement對(duì)象:Statement 類的主要是用于執(zhí)行靜態(tài) SQL 語(yǔ)句并返回它所生成結(jié)果的對(duì)象。通過(guò)Connection 對(duì)象的 createStatement()方法可以創(chuàng)建一個(gè)Statement對(duì)象。例如:Statement statament = connection.createStatement(); 具體示例創(chuàng)建Statement對(duì)象代碼如下:
另外,一般情況下都可以使用PreparedStatement來(lái)代碼Statement,因數(shù)PreparedStatement可以防止SQL注入攻擊,防止數(shù)據(jù)庫(kù)緩沖池溢出,代碼的可讀性,可維護(hù)性。具體示例創(chuàng)建PreparedStatement代碼如下:
PreparedStatement ps =connectMySQL.prepareStatement(sql);
5) 調(diào)用Statement對(duì)象的相關(guān)方法執(zhí)行相對(duì)應(yīng)的 SQL 語(yǔ)句:通過(guò)execuUpdate()方法用來(lái)數(shù)據(jù)的更新,包括插入和刪除等操作,例如向staff表中插入一條數(shù)據(jù)的代碼:
若使用PreparedStatement,則:
prest.setInt(1,1980); //表示第1個(gè)參數(shù)為1980 prest.setInt(2,2004); ResultSet rs = prest.executeQuery();
通過(guò)調(diào)用Statement對(duì)象的executeQuery()方法進(jìn)行數(shù)據(jù)的查詢,而查詢結(jié)果會(huì)得到 ResultSet對(duì)象,ResultSet表示執(zhí)行查詢數(shù)據(jù)庫(kù)后返回的數(shù)據(jù)的集合,ResultSet對(duì)象具有可以指向當(dāng)前數(shù)據(jù)行的指針。通過(guò)該對(duì)象的next()方法,使得指針指向下一行,然后將數(shù)據(jù)以列號(hào)或者字段名取出。如果當(dāng)next()方法返回null,則表示下一行中沒(méi)有數(shù)據(jù)存在。使用示例代碼如下:
6) 關(guān)閉數(shù)據(jù)庫(kù)連接:使用完數(shù)據(jù)庫(kù)或者不需要訪問(wèn)數(shù)據(jù)庫(kù)時(shí),通過(guò)Connection的close() 方法及時(shí)關(guān)閉數(shù)據(jù)連接。
3. 測(cè)試代碼
配置好環(huán)境后,就可以寫代碼測(cè)試是否能連通啦!
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class TestMysqlConn {
public static void main(String[] args) {
Connection con;
Statement stmt;
ResultSet rs;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
//test為數(shù)據(jù)庫(kù)名,_test為表名。_test表中有三個(gè)字段:id name description
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","root");
stmt = con.createStatement();
rs = stmt.executeQuery("select * from _test");
while(rs.next()){
int num = rs.getInt("id");
String name = rs.getString("name");
String des = rs.getString("description");
System.out.println(num + " " + name + " " + des);
}
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("連接失敗");
}
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Eclipse中C++連接mysql數(shù)據(jù)庫(kù)
- Myeclipse連接mysql數(shù)據(jù)庫(kù)心得體會(huì)
- MyEclipse連接MySQL數(shù)據(jù)庫(kù)圖文教程
- Eclipse連接Mysql數(shù)據(jù)庫(kù)操作總結(jié)
- MyEclipse連接Mysql數(shù)據(jù)庫(kù)的方法(一)
- 傻瓜式用Eclipse連接MySQL數(shù)據(jù)庫(kù)
- 用Eclipse連接MySQL數(shù)據(jù)庫(kù)的步驟
- MyEclipse連接MySQL數(shù)據(jù)庫(kù)報(bào)錯(cuò)解決辦法
- MyEclipse通過(guò)JDBC連接MySQL數(shù)據(jù)庫(kù)基本介紹
- 教你用eclipse連接mysql數(shù)據(jù)庫(kù)
相關(guān)文章
MySQL5.73?root用戶密碼修改方法及ERROR?1193、ERROR1819與ERROR1290報(bào)錯(cuò)解決
這篇文章主要給大家介紹了關(guān)于MySQL5.73?root用戶密碼修改方法及ERROR?1193、ERROR1819與ERROR1290:...?running?with?--skip-...報(bào)錯(cuò)的解決方法,文中通過(guò)圖文將解決的步驟介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
linux修改mysql數(shù)據(jù)庫(kù)文件的路徑
在網(wǎng)上找了好多,沒(méi)有確定哪個(gè)是最終的答案,由于網(wǎng)站在運(yùn)行中,實(shí)在不敢輕易動(dòng)手,怎么奈我是個(gè)菜鳥呢!先把找到的東西簡(jiǎn)單記錄一下,回頭再說(shuō)2012-01-01
mysql?count?為null時(shí),顯示0的問(wèn)題
這篇文章主要介紹了mysql?count?為null時(shí),顯示0的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
MySQL explain獲取查詢指令信息原理及實(shí)例
這篇文章主要介紹了MySQL explain獲取查詢指令信息原理及實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Windows Server 2003下修改MySQL 5.5數(shù)據(jù)庫(kù)data目錄
這篇文章主要介紹了Windows Server 2003下修改MySQL 5.5數(shù)據(jù)庫(kù)data目錄,需要的朋友可以參考下2016-04-04
MySQL刪除外鍵時(shí)報(bào)錯(cuò)Error?Code:1091.?Can‘t?DROP?‘XXX‘的解決方法
這篇文章主要給大家介紹了關(guān)于MySQL刪除外鍵時(shí)報(bào)錯(cuò)Error?Code:1091.?Can‘t?DROP?‘XXX‘的解決方法,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-08-08
MySQL優(yōu)化之大字段longtext、text所生產(chǎn)的問(wèn)題
本文主要介紹了MySQL優(yōu)化之大字段longtext、text所生產(chǎn)的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05

