国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

myeclipse中連接mysql數(shù)據(jù)庫示例代碼

2024-07-24 13:10:48
字體:
供稿:網(wǎng)友

1. 環(huán)境配置

下載地址:http://www.mysql.com/downloads/mysql/ 真麻煩,下載的話還需要注冊和登錄以及填個表。上面的信息還挺全的,亂填的信息也是可以接受的~~ 下載后按提示安裝即可,最后設(shè)置登錄mysql用的密碼。安裝完成后,測試連接數(shù)據(jù)庫。在開始-程序中點擊MYSQL5.5 Command Line cilent,輸入剛才設(shè)定的密碼后,應(yīng)該后就能連上mysql服務(wù)器了。

在安裝后的軟件包中,mysql_server/Connector J XXXX中可以找到一個jar包,這個jar包是java程序連接mysql數(shù)據(jù)庫必須的。若沒有這個包,程序代碼將提示:ClassNotFoundExceptioncom.mysql.jdbc.Driver的錯誤。

新建一個java項目,并在項目中新建一個存放jar 包的文件夾(如 lib),將mysql-connector-java-X.X.X-bin.jar 復(fù)制到文件夾中,選中jar包右擊--->Build Path--->Add To Build Path,即可。若新建的是一個web項目,而放在WEB-INF下的lib文件夾中即可。

2. JDBC介紹

JDBC是Sun公司制定的一個可以用Java語言連接數(shù)據(jù)庫的技術(shù)。

2.1 JDBC基礎(chǔ)知識       

JDBC(Java Data Base Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為數(shù)據(jù)庫開發(fā)人員提供了一個標準的API,據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠用純 Java API 編寫數(shù)據(jù)庫應(yīng)用程序,并且可跨平臺運行,并且不受數(shù)據(jù)庫供應(yīng)商的限制。

1、跨平臺運行:這是繼承了Java語言的“一次編譯,到處運行”的特點;

2、不受數(shù)據(jù)庫供應(yīng)商的限制:巧妙在于JDBC設(shè)有兩種接口,一個是面向應(yīng)用程序?qū)樱渥饔檬鞘沟瞄_發(fā)人員通過SQL調(diào)用數(shù)據(jù)庫和處理結(jié)果,而不需要考慮數(shù)據(jù)庫的提供商;另一個是驅(qū)動程序?qū)樱幚砼c具體驅(qū)動程序的交互,JDBC驅(qū)動程序可以利用JDBC API創(chuàng)建Java程序和數(shù)據(jù)源之間的橋梁。應(yīng)用程序只需要編寫一次,便可以移到各種驅(qū)動程序上運行。Sun提供了一個驅(qū)動管理器,數(shù)據(jù)庫供應(yīng)商——如MySQL、Oracle,提供的驅(qū)動程序滿足驅(qū)動管理器的要求就可以被識別,就可以正常工作。所以JDBC不受數(shù)據(jù)庫供應(yīng)商的限制。

JDBC API可以作為連接Java應(yīng)用程序與各種關(guān)系數(shù)據(jù)庫的紐帶,在帶來方便的同時也有負面影響,以下是JDBC的優(yōu)、缺點。

優(yōu)點如下:

操作便捷:JDBC使得開發(fā)人員不需要再使用復(fù)雜的驅(qū)動器調(diào)用命令和函數(shù);
可移植性強:JDBC支持不同的關(guān)系數(shù)據(jù)庫,所以可以使同一個應(yīng)用程序支持多個數(shù)據(jù)庫的訪問,只要加載相應(yīng)的驅(qū)動程序即可;
通用性好:JDBC-ODBC橋接驅(qū)動器將JDBC函數(shù)換成ODBC;
面向?qū)ο?/strong>:可以將常用的JDBC數(shù)據(jù)庫連接封裝成一個類,在使用的時候直接調(diào)用即可。

缺點如下:

訪問數(shù)據(jù)記錄的速度受到一定程度的影響;
更改數(shù)據(jù)源困難:JDBC可支持多種數(shù)據(jù)庫,各種數(shù)據(jù)庫之間的操作必有不同,這就給更改數(shù)據(jù)源帶來了很大的麻煩

2.2 JDBC連接數(shù)據(jù)庫的流程及其原理

1) 在開發(fā)環(huán)境中加載指定數(shù)據(jù)庫的驅(qū)動程序。例如,接下來的實驗中,使用的數(shù)據(jù)庫是MySQL,所以需要去下載MySQL支持JDBC的驅(qū)動程序;而開發(fā)環(huán)境是MyEclipse,將下載得到的驅(qū)動程序加載進開發(fā)環(huán)境中(具體示例的時候會講解如何加載)。

2) 在Java程序中加載驅(qū)動程序。在Java程序中,可以通過 “Class.forName(“指定數(shù)據(jù)庫的驅(qū)動程序”)” 方式來加載添加到開發(fā)環(huán)境中的驅(qū)動程序,例如加載MySQL的數(shù)據(jù)驅(qū)動程序的代碼為:  Class.forName(“com.mysql.jdbc.Driver”)

3) 創(chuàng)建數(shù)據(jù)連接對象:通過DriverManager類創(chuàng)建數(shù)據(jù)庫連接對象Connection。DriverManager類作用于Java程序和JDBC驅(qū)動程序之間,用于檢查所加載的驅(qū)動程序是否可以建立連接,然后通過它的getConnection方法,根據(jù)數(shù)據(jù)庫的URL、用戶名和密碼,創(chuàng)建一個JDBC Connection 對象。如:Connection connection =  DriverManager.getConnection(“連接數(shù)據(jù)庫的URL", "用戶名", "密碼”)。其中,URL=協(xié)議名+IP地址(域名)+端口+數(shù)據(jù)庫名稱;用戶名和密碼是指登錄數(shù)據(jù)庫時所使用的用戶名和密碼。具體示例創(chuàng)建MySQL的數(shù)據(jù)庫連接代碼如下:

 

復(fù)制代碼 代碼如下:
Connection connectMySQL  =  DriverManager.getConnection(“jdbc:mysql://localhost:3306/myuser","root" ,"root" );

 

4) 創(chuàng)建Statement對象:Statement 類的主要是用于執(zhí)行靜態(tài) SQL 語句并返回它所生成結(jié)果的對象。通過Connection 對象的 createStatement()方法可以創(chuàng)建一個Statement對象。例如:Statement statament = connection.createStatement(); 具體示例創(chuàng)建Statement對象代碼如下:

 

復(fù)制代碼 代碼如下:
Statement statamentMySQL =connectMySQL.createStatement();

另外,一般情況下都可以使用PreparedStatement來代碼Statement,因數(shù)PreparedStatement可以防止SQL注入攻擊,防止數(shù)據(jù)庫緩沖池溢出,代碼的可讀性,可維護性。具體示例創(chuàng)建PreparedStatement代碼如下:

 

 

復(fù)制代碼 代碼如下:
String sql = "Select title, year_made from movies where year_made >= ? and year_made <= ?";
 PreparedStatement ps =connectMySQL.prepareStatement(sql);

 

5) 調(diào)用Statement對象的相關(guān)方法執(zhí)行相對應(yīng)的 SQL 語句:通過execuUpdate()方法用來數(shù)據(jù)的更新,包括插入和刪除等操作,例如向staff表中插入一條數(shù)據(jù)的代碼:

 

復(fù)制代碼 代碼如下:
statement.excuteUpdate( "INSERT INTO staff(name, age, sex,address, depart, worklen,wage)" + " VALUES ('Tom1', 321, 'M', 'china','Personnel','3','3000' ) ") ;

 

若使用PreparedStatement,則:

prest.setInt(1,1980); //表示第1個參數(shù)為1980prest.setInt(2,2004);ResultSet rs = prest.executeQuery();

通過調(diào)用Statement對象的executeQuery()方法進行數(shù)據(jù)的查詢,而查詢結(jié)果會得到 ResultSet對象,ResultSet表示執(zhí)行查詢數(shù)據(jù)庫后返回的數(shù)據(jù)的集合,ResultSet對象具有可以指向當(dāng)前數(shù)據(jù)行的指針。通過該對象的next()方法,使得指針指向下一行,然后將數(shù)據(jù)以列號或者字段名取出。如果當(dāng)next()方法返回null,則表示下一行中沒有數(shù)據(jù)存在。使用示例代碼如下:

 

復(fù)制代碼 代碼如下:
ResultSet resultSet = statement.executeQuery( "select * from staff" );

 

6) 關(guān)閉數(shù)據(jù)庫連接:使用完數(shù)據(jù)庫或者不需要訪問數(shù)據(jù)庫時,通過Connection的close() 方法及時關(guān)閉數(shù)據(jù)連接。

3. 測試代碼

配置好環(huán)境后,就可以寫代碼測試是否能連通啦!

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ù)庫名,_test為表名。_test表中有三個字段: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("連接失敗");  } }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到MYSQL教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 孙吴县| 渝中区| 龙井市| 西畴县| 化隆| 文安县| 高唐县| 青龙| 宣城市| 峨眉山市| 蒙山县| 金川县| 南雄市| 临泉县| 全南县| 法库县| 康保县| 久治县| 监利县| 道孚县| 黄陵县| 商城县| 大宁县| 简阳市| 攀枝花市| 鱼台县| 文山县| 昭苏县| 蕉岭县| 韶关市| 双峰县| 九龙县| 县级市| 和林格尔县| 淳化县| 双峰县| 洪泽县| 平山县| 新津县| 新民市| 沾化县|