java學習筆記 第二篇 核心技術(二)

第十四章 集合類

集合類用來存放對象的引用。繼承關係如下圖:

14.1 Collection 接口

是層次結構中的根接口,構成Collection的單位稱爲元素。Collection接口不能直接使用,但該接口提供了添加元素、刪除元素、管理數據的方法。
Collection接口常用方法:

14.2 List 集合

包括List接口以及List集合的所有實現類。List集合中的元素允許重複,各元素循序就是對象插入的順序

1.List接口,兩個重要方法:

get(int index): 獲取指定索引位置的元素
set(int index,Object obj): 將集合中指定索引位置的對象修改爲指定的對象

2.List接口的實現類

ArrayList類實現可變數組,允許所以元素包括null,可快速隨機訪問
LinkedList採用鏈表結構保存對象。便於向集合中添加插入和刪除對象
實例化List集合:
List list = new ArrayList();
List list2 = new LinkedList();

14.3 Set 集合

set集合中的對象不按特定方式排序,只是簡單地把對象加入集合中,但不能包含重複對象。
常用的實現類:
HashSet,有哈希表支持。不保證set迭代順序,不保證該順序永恆不變。
TreeSet,集合按照自然順序遞增排序。

14.4 Map 集合

1.Map沒有繼承Collection接口,其提供的是key到value的映射
2.Map常用實現類:
HashMap。 //不保證映射的順序,切順序不保證永恆不變
TreeMap。 //j具有一定順序,但在添加、刪除和定位映射關係時,比HashMap性能差
可以通過HashMap類創建Map集合,當需要順序輸出時,再創建一個相同映射關係的TreeMap類實例
3.put(key k,valued v)方法中key與value 的類型都應是String型

第十五章 I/O輸入輸出

15.1 輸入輸出流

流是一組有序的數據序列,I/O流提供了一條通道程序,可以通過這條通道把源中的字節序列送到目的地。
輸入輸出流的類都放在java.io包中


15.2 File類

file類是唯一代表磁盤文件本身的對象

15.3文件輸入輸出流

15.3.1 FileInputStream與FileOutputStream類
15.3.2 FileReader類和FileWriter類

使用方法:

File file = new File("G:/word.txt");

char a[] = new char[1024];

FileReader reader= new FileReader(file);;

FileWriter fw = new FileWriter(file);

fw.write(a);
fw.close();

int len = reader.read(c);
System.out.println(new String(c,0,len));

reader.close();

15.4 帶緩存的輸入輸出流

1.BufferedInputStream與BufferedOutputStream類
2.BufferedReader與BufferedWriter類

15.5 數據輸入輸出流

DataInputStream與DataOutputStream類

15.6 ZIP壓縮輸入輸出流

zipInputStream與zipOutputStream

第十六章 反射

1.通過java反射機制,可以在程序中訪問已經加載到JVM中的java對象的描述,
實現訪問、檢測和修改描述java對象本身信息的功能。由java.lang.reflect包提供功能支持。
2.所有java類繼承了Object類,在object類中定義了一個getClass()方法,該方法返回一個類型爲Class的對象。
例:Class textFieldC = textField.getClass(); //textField爲JTextField類的對象
(以下反射部分引用自:http://w w w.360doc.com/content/10/1018/21/3236365_62059768.shtml)

◆16.1.Class類

Class類是Reflection API中的核心類,它有以下方法
(1)獲得對象的類型:
getName():獲得類的完整名字。
getFields():獲得類的public類型的屬性(成員變量)。
getDeclaredFields():獲得類的所有屬性。
getMethods():獲得類的public類型的方法。
getDeclaredMethods():獲得類的所有方法。
getMethod(String name, Class[] parameterTypes):獲得類的特定方法,name參數指定方法的名字,parameterTypes參數指定方法的參數類型。
getConstrutors():獲得類的public類型的構造方法。
getConstrutor(Class[] parameterTypes):獲得類的特定構造方法,parameterTypes參數指定構造方法的參數類型。
newInstance():通過類的不帶參數的構造方法創建這個類的一個對象。
(2)通過默認構造方法創建一個新的對象:
Object objectCopy=classType.getConstructor(new Class[]{}).newInstance(new Object[]{});
(3)獲得對象的所有屬性:
Field fields[]=classType.getDeclaredFields();
 Class類的getDeclaredFields()方法返回類的所有屬性,包括public、protected、默認和private訪問級別的屬性。
以上代碼先調用Class類的getConstructor()方法獲得一個Constructor對象,它代表默認的構造方法,然後調用Constructor對象的newInstance()方法構造一個實例。
(4)獲得每個屬性相應的getXXX()和setXXX()方法,然後執行這些方法,把原來對象的屬性複製到新的對象中:
 for(int i=0; i  Field field=fields[i];  
String fieldName=field.getName(); 
 String firstLetter=fieldName.substring(0,1).toUpperCase(); 
 //獲得和屬性對應的getXXX()方法的名字  String getMethodName="get"+firstLetter+fieldName.substring(1);  
//獲得和屬性對應的setXXX()方法的名字  String setMethodName="set"+firstLetter+fieldName.substring(1);  
//獲得和屬性對應的getXXX()方法 
 Method getMethod=classType.getMethod(getMethodName,new Class[]{}); 
 //獲得和屬性對應的setXXX()方法 
 Method setMethod=classType.getMethod(setMethodName,new Class[]{field.getType()});  
//調用原對象的getXXX()方法  
Object value=getMethod.invoke(object,new Object[]{}); 
 System.out.println(fieldName+":"+value);  
//調用複製對象的setXXX()方法 
 setMethod.invoke(objectCopy,new Object[]{value});}

◆16.2.Method類(訪問方法)

Method類的invoke(Object obj,Object args[])方法接收的參數必須爲對象,如果參數爲基本類型數據,必須轉換爲相應的包裝類型的對象。
invoke()方法的返回值總是對象,如果實際被調用的方法的返回類型是基本類型數據,那麼invoke()方法會把它轉換爲相應的包裝類型的對象,再將其返回。

 ◆16.3.Array類

java.lang.Array類提供了動態創建和訪問數組元素的各種靜態方法。如例程10-4所示的ArrayTester1類的main()方法創建了一個長度爲10的字符串數組,接着把索引位置爲5的元素設爲“hello”,然後再讀取索引位置爲5的元素的值。
import java.lang.reflect.*;
public class ArrayTester1 {
  public static void main(String args[])throws Exception {   
 Class classType = Class.forName("java.lang.String");   
//創建一個長度爲10的字符串數組  
  Object array = Array.newInstance(classType, 10);   
 //把索引位置爲5的元素設爲"hello"  
  Array.set(array, 5, "hello");   
//讀取索引位置爲5的元素的值   
String s = (String) Array.get(array, 5);    System.out.println(s);  }}
(關與運用反射操作數組詳情,轉:http://blog.csdn.net/hqs_1992/article/details/24046875)

◆16.4.Annotation類型

1.Annotation功能可用於類、構造方法、成員變量、方法、參數等的聲明中。該功能不影響程序運行,但會對編輯器的警告等輔助工具產生影響。
2.定義Annotation類型,也需要用到用來定義接口的interface關鍵字,不過需要在interface關鍵字前加一個“@”符號。這個關鍵字隱含意思是繼承了java.lang.annotation.Annotation接口。
定義實例:
public @interface DefaoltValueAnnotation{
String describe() default "<默認值>";//定義成員變量時,可以爲成員變量設置默認值。
Class type() default void.class;//成員類型可以是String、Class、primitive、enumerated和annotation,以及所列類型的數組
}
3.可通過@Target來設置Annotation類型所適用的程序元素種類。枚舉類ElementType中的枚舉常量用來設置@Targer。
例:@Target(ElementType.TYPE)
4.通過@Retention可設置Annotation的有效範圍。枚舉類RetentionPollicy中的枚舉常量用來設置@Retention。
例:@Retention(RetentionPollicy.RUNTIME)

16.4.2訪問Annotation信息

1.如果定義Annotation類型時將@Retention設置爲RetentionPollicy.RUNTIME,那麼運行程序時可通過反射獲取相關Annotation信息。
2.類Consturctor、Field和Method均繼承AccessibleObject類,在AccessibleObject中定義了3個關於Annotation的方法:
方法isAnnotationPresent(Class<? extends Annotation>annotationClass)用來查看是否添加了指定類型的Annotation,是返回true,否則返回false;
方法getAnnotation(Class<I>annotationClass)用來獲取指定類型的Annotation,存在則返回相應的對象,否則返回null;
方法getAnnotation()用來獲取所以Annotation,該方法返回一個Annotation數組。

第十七章 枚舉類型與泛型

17.1 枚舉類型

1.在程序設計中,有時會用到由若干個有限數據元素組成的集合,如一週內的星期一到星期日七個數據元素組成的集合,由三種顏色紅、黃、綠組成的集合,一個工作班組內十個職工組成的集合等等,程序中某個變量取值僅限於集合中的元素。此時,可將這些數據集合定義爲枚舉類型。因此,枚舉類型是某類數據可能取值的集合,如一週內星期可能取值的集合爲:
  { Sun,Mon,Tue,Wed,Thu,Fri,Sat}
  該集合可定義爲描述星期的枚舉類型,該枚舉類型共有七個元素,因而用枚舉類型定義的枚舉變量只能取集合中的某一元素值。由於枚舉類型是導出數據類型,因此,必須先定義枚舉類型,然後再用枚舉類型定義枚舉型變量。

2.語法: 

  enum <枚舉類型名> 
  { <枚舉元素表> };
  其中:關鍵詞enum表示定義的是枚舉類型,枚舉類型名由標識符組成,而枚舉元素表由枚舉元素或枚舉常量組成。例如: 
  enum weekdays 
  { Sun,Mon,Tue,Wed,Thu,Fri,Sat };

3.用戶可以將一個枚舉類型看作一個類(但需在類內定義!)它繼承於java.lang.Enum類,當定義一個枚舉類型時,每一個枚舉類型成員都可以看作是枚舉類型的一個實例,這些枚舉類型成員默認都被final、public、static所修飾,所以當使用枚舉成員時直接使用枚舉類型名稱調用枚舉類型成員即可。

4.枚舉類型常用方法:

values(),將枚舉類型的成員變量實例以數組的形式返回,也可通過該方法獲取枚舉類型的成員。

valueOf(),可以將普通字符串轉換爲枚舉類型。

compareTo(),用於比較兩個枚舉類型對象定義時的順序。

ordinal(),獲取某個枚舉對象的位置索引值。

5.在枚舉類型中,可以添加構造方法,但是構造方法必須爲private修飾符所修飾。

17.2 泛型

1.泛型其實就像一個口袋,你可以很方便地往裏面裝東西,只是在第一次使用這個口袋的時候要注意聲明它只能裝什麼樣類型的東西,以後就不能裝錯了。那麼我們就用錢包爲例吧,我們首先描述一下錢包。錢包的用途不外乎是裝點兒東西,當然,除了錢還可以裝其它很多東西,例如銀行卡、便籤條、照片等等,但是這些東西有些共同的地方,至少是尺寸方面不能超過錢包的限制,誰可以把冰箱也揣在錢包裏呢?因此,我們在設計能裝進錢包的物品的類的時候就要考慮到尺寸的因素。
2.定義泛型類:類名<T> //T代表一個類型名稱
定義泛型類時,一般講類型名稱使用T來表達,二容器元素使用E來表達。
3.定義泛型類時可以聲明多個類型:MutiOverClass<T1,T2>
聲明數組類型:public class ArrayClass<T>{private T[] array;}//定義泛型數組
集合類聲明容器的元素:可以使用K和V兩個字符代表容器中的鍵值和與鍵值相對應的具體值。
public class MutiOverClass<K,V>{public Map<K,V> m = new HashMap<K,V>();}//定義一個集合HashMap實例
4.常用的被泛型化的集合類:ArrayList<E>;HashMap<K,V>;HashSet<E>;Vector<E>
5.限制泛型可用類型:class 類名稱<T extends anyClass> //anyClass是指某個類或接口
6.使用類型通配符:泛型類名稱<? extends List> a=null; //<? extends List>表示類型未知,當需要使用該泛型對象時,可以單獨實例化
如果使用A<?>這種形式實例化泛型類對象,則默認表示可以使用A指定爲實例化Object及以下的子類類型。
7.定義爲泛型的類和接口也可以被繼承與實現

第十八章 多線程

1.           世間萬物都可以同時完成多項工作,這種思想放在Java中被稱爲併發,而將併發完成的每一件事情稱爲線程。程序員在Java程序中可以執h行多個線程,每個線程完成一個功能,並與其他線程併發執行,這種機制稱爲多線程。

2.       進程:每個進程是一個包含有自身地址的程序,每個立執行的程序都稱爲進程,也就是正在執行的程序。


3.一個線程是進程中的執行流程,一個進程中可以同時包括多個線程,每個線程可以得到一小段程序的執行時間,這樣一個進程就可以具有多個併發執行的線程。

18.1 實現線程的兩種方式

1.繼承Thread類

1.Thread類是Java.lang包中的一個類,從這個類中實例化的對象代表線程,程序員啓動一個新線程需要建立Thread實例。

2.Thread類中常用的構造方法:publicThread([String threadName])  //StringthreadName線程名稱

3.完成線程真正功能的代碼放在類的run()方法中,而Thread類中start()方法執h行線程,也就是調用run()方法。主方法線程啓動由Java虛擬機負責,程序員負責啓動自己的線程。

2. 實現Runnable接口

1.如果程序員需要繼承其他類(非Thread類),而且還要是當前類實現多線程,由於Java不支持多繼承,就只能通過Runnable接口實現。(實質上

Thread類就是實現了Runnable接口)

2.語法:publicclass Thread extends Object implements Runnable

3.實現Runnable接口的程序會創建一個Thread對象,並將Runnable對象與Thread對象相關聯。Thread類中有以下構造方法:

         public Thread(Runnable r,[String name]) //此構造方法可以將Runnable實例與Thread實例相關聯。

4.使用Runnable接口啓動新線程的步驟:

         建立Runnable對象;

         使用參數爲Runnable對象的構造方法創建Thread實例;

         調用start()方法啓動線程。

實例:

  1. package mythread;  
  2.  
  3. public class MyRunnable implements Runnable  
  4. {  
  5.     public void run()  
  6.     {  
  7.         System.out.println(Thread.currentThread().getName());  
  8.     }  
  9.     public static void main(String[] args)  
  10.     {  
  11.         MyRunnable t1 = new MyRunnable();  
  12.         MyRunnable t2 = new MyRunnable();  
  13.         Thread thread1 = new Thread(t1, "MyThread1");  
  14.         Thread thread2 = new Thread(t2);  
  15.         thread2.setName("MyThread2");  
  16.         thread1.start();  
  17.         thread2.start();  
  18.     }  
  19. }  

18.2 線程的生命週期

線程包含7中狀態:出生狀態、就緒狀態、運行狀態、等待狀態、休眠狀態、阻塞狀態和死亡狀態。

18.3 操作線程的方法

1.線程的休眠(sleep())

sleep()方法需要一個參數用於指定該線程休眠的時間,以毫秒爲單位

語法:Thread.sleep(2000);

2.線程的加入(join())

在A線程中插入B線程。當某個線程使用join()加入到另一個線程時,另一個線程會等待該線程研究完畢後再繼續執行。

3.線程的中斷(stop())

當前不建議使用stop()方法,提h倡在run()方法中使用無限循環的形式,然後使用一個布爾型標價控制循環的停止。

18.4 線程的優先級

Thread類中包含的成員變量代表了線程的某些優先級,如Thread.MIN_PRIORITY(常數1)、Thread.MAX_PRIORITY(常數10)、Thread.NORM_PRIORITY(常數5)【默認】

線程的優先級可以使用setPriority方法調整

18.5 線程同步

線程同步機*^製爲瞭解決資源共享時,發生多個線程同一時間共享一個資源的情況。採用給定時間只允許一個線程訪問共享,給共享資源上一道鎖。

同步機hh制使用synchronized關鍵字。

1.同步塊語法:

synchronized(Object){   語句   }

2.同步方法語法:

synchronized voidf(){ }

第十九章 網絡通信

19.1  網絡程序設計基礎

1.網絡程序設計是指編寫與其他計算機進行通信的程序。

2.網路協議,規定了計算機之間連接的物理、機械(網卡與網線的連接規定)、電氣(有效地電平範圍)等特徵及計算機之間的相互尋址規則、數據發送衝突的解決,長的數據如何分段傳送與接收等。

3.TCP/IP協議棧中,有兩個高級協議:“傳輸控制協議”(TCP)與“用戶數據報協議”(UDP)

4.TCP協議以固接連線爲基礎的協議,數據傳送可靠。.UDP是無連接通信協議,不保證可靠的數據傳輸。

5.一般一臺計算機只有單一的連到網絡的“物理連接”,這就是端口。網絡程序設計中的端口(Port)並非真實的物理存在,而是假象的連接裝置。端口被規定爲一個在0~65535之間的整數。HTTP服務一般使用80端口。FTP服務使用21端口。

6.通常0~1023之間的端口數用於一些知名的網絡服務和應用,用戶的普通網絡應用程序應該使用1024以上的端口數,避免衝突。

7.網絡程序中套接字(socket)用於將應用程序與端口連接起來。套接字是一個假想的連接裝置,就像插座,用來連接電器與電線。Java將套接字抽象化爲類--Socket類。

Socket類的常用方法:

[java] view plaincopy
  1. public Socket(InetAddress address,int port) throws IOException  
  2. public Socket(String host,int port) throws UnknowHostException,IOException  
  3. public Socket(InetAddress address,int port,InetAddress localAddr,int localport) throws IOException  
  4.   
  5. public InetAddress getInetAddress()//返回套接字連接的主機地址  
  6. public InetAddress getLocalAddress()//返回套接字綁定的本地地址  
  7. public InputStream getInputStream()throws IOException//獲得該套接字的輸入流  
  8. public int getLocalPort()//返回套接字綁定的本地端口  
  9. public int getPort()//返回套接字連接的遠程端口  
  10. public OutputStream getOutputSteam()throws IOException//返回該套接字的輸出流  
  11. public int getSoTimeout()throws SocketException//返回該套接字最長等待時間  
  12.   
  13.   
  14. public void setSoTimeout(int timeout)throws SocketException//設置該套接字最長等待時間  
  15.   
  16. public void shutdownInput()throws IOException//關閉輸入流  
  17. public void shutdownOutput()throws IOException//關閉輸出流  
  18.   
  19. public void close()throws IOException//關閉套接字  

19.2 TCP程序設計基礎

19.2.1 InetAddress類

位於java.net包中,該類可獲取IP地址、主機地址等信息。

常用方法有:

getByName(String host) //獲取與Host相對應的InetAddress對象

getHostAddress() //獲取InetAddress對象所含的IP地址

getHostName() //獲取此IP地址的主機名

getLocalHost() //返回本地主機的InetAddress對象

19.2.2 ServerSocket類

位於java.net包中,用於表示服務器套接字,主要功能是等待來自網絡上的“請求”,它可通過指定的端口來等待連接的套接字。服務器套接字一次可以與一個套接字連接。多臺客戶機同時提出連接請求時,服務器套接字會將請求連接的的客戶機存入列隊中。若請求連接數大於最大容納數(默認50),則多出的請求會拒絕。
構造方法:
ServerSocket([int port],[int backlog],[InetAddress bindAddress])//使用指定的端口、偵聽backlog和要綁定到的本地IP地址創建服務器。
ServerSocket常用方法:
  1. public ServerSocket(int port) throws IOException  
  2. public ServerSocket(int port,int backlog) throws IOException  
  3. public ServerSocket(int port,int backlog,InetAddress bindAddr) throws IOException  
  4.   
  5.   
  6. public Socket accept() throws IOException//監聽並接受客戶端Socket連接  
  7. public InetAddress getInetAddress()//返回服務器套接字的本地地址  
  8.   
  9. public int getLocalPort()//返回套接字監聽的端口  
  10.   
  11.   
  12.   
  13. public int getSoTimeout()throws SocketException//返回該套接字最長等待時間  
  14.   
  15.   
  16. public void setSoTimeout(int timeout)throws SocketException//設置該套接字最長等待時間     
  17.   
  18. public void close()throws IOException//關閉套接字  

19.2.3 TCP網絡程序

19.3 UDP程序設計基礎

UDP程序的步驟:

1.發送數據包
a.使用DatagramSocket()創建一個數據包套接字
b.使用DatagramPacket(byte[] buf,int offset,int length,InetAddress address,int port)創建要發送的數據包
c.使用DatagramSocket類的send()方法發送數據包
2.接受數據包

a.使用DatagramSocket(int port)創建數據包套接字,綁定到指定的端口

b.使用DatagramPacket(byte[] buf,int length)創建字節數組來接收數據包。

c.使用DatagramPacket類的receive()方法接收UDP包。

DatagramPacket類

位於java.net包,用來表示數據包
構造函數:DatagramPacket(byte[] buf,int length,[InetAddress],[int pot])

DatagramSocket類

位於java.net包中,用於發送和接收數據包的套接字。
構造函數:DatagramSocket([int port],[InteAddress addr])

補充:

詳細網絡編程可查看:h t t p://www.bianceng.cn/Programming/Java/201003/16146.htm

第二十章 數據庫操作

1.數據庫系統是由數據庫、數據庫管理系統和應用系統、數據庫管理員構成。數據庫管理系統簡稱DBMS,是數據庫系統的關鍵組成部分,包括數據庫定義、數據查詢、數據維護等。
2.數據庫指的是以一定方式儲存在一起、能爲多個用戶共享、具有儘可能小的冗餘度、與應用程序彼此獨立的數據集合
3.SQL(結構化查詢語言),可以方便的查詢、操作、定義和控制數據庫中的數據。

20.1 SQL語言主要部分組成:

1.數據定義語言(DDL),如create、alter 、drop等
2.數據操縱語言(DML),如select、insert、update、delete等
3.數據控制語言(DCL),如grant、revoke等
4.事務控制語言,如commit、rollback等

常用數據操縱語言:

1.select語句

數據表中檢索數據
語法:
SELECT  所選字段列表 FROM 數據表名
WHERE 條件表達式 GROUP BY 字段名 HAVING 條件表達式(指定分組的條件)
ORDER BY 字段名[ASC|DESC]
例子:select name,age from tb_emp where sex = '女' order by age;

2.insert語句

向表中插入新數據
語法:
insert into 表名[(字段名 1,字段名 2,···)]
values(屬性值 1,屬性值 2,···)
例子:insert into tb_emp values(2,‘lili’,‘女’,‘銷售部’);

3.update語句

用於更新數據表中某些記錄
語法:
UPDATE 數據表名 SET 字段名 = 新的字段值 WHERE 條件表達式
例子:update tb_emp set age = 24 where id = 2;

4.delete語句

用於刪除數據
語法:
delete from 數據表名 where 條件表達式
例子:delete from tb_emp where id = 1024;

20.2 JDBC

1.JDBC技術

JDBC是一種可用於執行SQL語句的Java API,是連接數據庫和Java應用程序的紐帶。
JDBC技術主要完成以下幾個任務:
1.與數據庫建立一個連接
2.向數據庫發送SQL語句
3.處理從數據庫返回的結果
JDBC不能直接訪問數據庫,必須依賴於數據庫廠商提供的JDBC驅動程序。

2.JDBC驅動類型

1)JDBC-ODBC橋


 把標準的JDBC調用轉換成相應的ODBC調用,並通過ODBC庫把它們發送給ODBC數據源。這種方式訪問數據庫,需要經過多層調用,效率比較低。訪問Micros Access數據庫,就只能通過這種方式來訪問。



 
 
 2)部分本地API Java驅動程序


 利用JDBC API訪問數據庫時,JDBC驅動程序將調用請求轉換爲數據庫廠商提供的本地API調用,數據庫處理完請求將結果通過這些API返回,進而返回給JDBC驅動程序,JDBC驅動程序將結果轉化爲JDBC標準形式,再返回客戶程序。
 這種類型減少了ODBC的調用環節,極高了數據庫訪問的效率,並且能夠充分利用廠商提供的本地API的功能。
 

 
 3)JDBC網絡純Java驅動程序(首先)


 這種驅動利用應用服務器作爲中間件來訪問數據庫。應用服務器作爲一個到多個數據庫的網關,客戶端通過它可以連接到不同的數據服務器。應用服務器都有自己的網絡協議,Java客戶程序通過JDBC驅動程序將JDBC調用發送給應用服務器,應用服務器使用本地驅動程序訪問數據庫,從而完成請求。
 

 
 4)本地協議的純Java驅動程序(首先)


 客戶程序通過網絡直接與數據庫進行通信。數據庫訪問效率最高。



3. JDBC常用的類和接口

1.Connection接口

代表與特定的數據庫的連接,在連接上下文中執行SQL語句並返回結果。

2.Statement接口

用於在已經創立連接的基礎上向數據庫發送SQL語句

3.PreparedStatement接口

用來動態的執行SQL語句

4.DriverManager類

用來管理數據庫中的所有驅動程序。

5.ResultSet接口

類似於一個臨時表,用來暫時存放數據庫查詢操作所獲取的結果集。

發佈了31 篇原創文章 · 獲贊 11 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章