JDBC的初步瞭解及使用

1、概念java

一、什麼是JDBC?sql

  JDBC(Java Data Base Connectivity,java數據庫鏈接)是一種用於執行SQL語句的Java API,能夠爲多種關係數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準,據數據庫

此能夠構建更高級的工具和接口,使數據庫開發者可以編寫數據庫的程序。簡單地說,JDBC 可作三件事:與數據庫創建鏈接、發送 操做數據庫的語句並處理結果。服務器

二、JDBC有什麼用呢?cors

  咱們用JAVA就能鏈接到數據庫;建立SQL或者MYSQL語句;執行SQL或MYSQL的查詢數據庫;查看和修改結果記錄。yii

 

2、鏈接經常使用的接口工具

  提供的接口包括:JAVA API:提供對JDBC的管理連接;JAVA Driver API:支持JDBC管理到驅動器鏈接。sqlserver

 一、DriverManager :這個類管理數據庫驅動程序的列表。內容是否符合從Java應用程序使用的通訊子協議正確的數據spa

 庫驅動程序的鏈接請求。識別JDBC在必定子協議的第一個驅動器被用來創建數據庫鏈接。code

二、Driver :此接口處理與數據庫服務器通訊。不多直接與驅動程序對象。相反,使用DriverManager中的對象,它管理

此類型的對象。它也抽象的與驅動程序對象工做相關的詳細信息。

三、Connection :此接口與接觸數據庫的全部方法。鏈接對象表示通訊上下文,即,與數據庫中的全部的通訊是經過惟一的鏈接對象。

 四、Statement :可使用這個接口建立的對象的SQL語句提交到數據庫。一些派生的接口接受除執行存儲過程的參數。

 五、ResultSet  :這些對象保存從數據庫後,執行使用Statement對象的SQL查詢中檢索數據。它做爲一個迭代器,讓你能夠經過移動它的數據。

 

建立JDBC的七大步驟:

第一步:導入工具包:

import java.sql.*;

import javax.sql.*;

第二步:註冊jdbc驅動程序

第三步:Class.forName( ....);

第四步:使用DriverManager.getConnection();方法來建立一個Connection對象,它表明一個物理鏈接的數據庫。

第五步:執行查詢:使用一個對象類型Statement或PreparedStatement()構建,並提交一個SQL語句到數據庫。

第六步:從結果集中提取數據;這一步是必需的狀況下,從數據庫中獲取數據。可使用適當的ResultSet.getXXX()方法來檢索

第七步:清理環境:關閉使用的數據庫資源。

 

咱們用代碼簡單的來實現數據庫的鏈接 代碼以下:

 1 package pkg1;
 2 import java.sql.*;
 3 import javax.sql.*;
 4 
 5 public class Test{
 6     
 7     //Driver類全名
 8     private static final String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
 9     //jdbc協議:子協議://ip:端口號/
10     private static final String URL = "jdbc:sqlserver://localhost:1433;databasename=";
11     //數據庫名
12     private static final String DATABASE_NAME = "oa";
13     //數據庫用戶名
14     private static final String USER_NAME = "sa";
15     //數據庫密碼
16     private static final String PASSWORD = "123456";
17         
18     public static void main(String args[]){
19         try{
20             //加載驅動程序:它經過反射建立一個driver對象。
21             Class.forName( DRIVER );
22             //1.打開Miccorsoft SQL Server  Managerment Studio 而且鏈接
23             Connection conn = DriverManager.getConnection( URL+DATABASE_NAME,USER_NAME,PASSWORD);
24             //2.新建一個查詢
25             Statement stmt = conn.createStatement();
26             //3.執行查詢--->返回結果集
27             ResultSet rs = stmt.executeQuery("select * from tt2");
28             
29                 int k = 0;
30                 String g,d;
31                 int count = 0;
32                 while ( rs.next() ){
33                     k = rs.getInt("id");
34                     g = rs.getString("name");
35                     d = rs.getString("sex");
36                     System.out.println("編號:"+k+" "+"姓名:"+g+" "+"性別:"+d);
37                     count++;    
38                     
39                 }if(k==0){
40                     System.out.println("查找正常,但沒有記錄");
41                 }                
42 
43             //關閉Microsoft SQL Server  Managerment Studio鏈接
44             rs.close();
45             stmt.close();
46             conn.close();
47             
48             
49             System.out.println("鏈接的數據庫是"+conn);
50         }
51         catch(ClassNotFoundException e){
52             System.out.println("找不到驅動"+e.getMessage());
53         }
54         catch(Exception e){
55             System.out.println("驅動已經加載成功,發生其餘異常"+e.getMessage());
56         }
57     }
58 }

 

結果:

咱們如今在oa數據庫裏面建了一張tt2的數據庫表,插上了數據

在對代碼進行編譯

能夠看到已經把數據庫裏的內容讀取出來了。

3、補充內容

一、JDBC結果集中爲何.next();?

將光標從當前位置向下移動一行。結果集光標最初位於第一行以前;對方法的第一次調用接着使第一行成爲當前行;第二次調用使第二行成爲當前行,依此類推。

若是當前行的輸入流是打開的,那麼對方法next的調用將隱式關閉它。讀取新行時,ResultSet對象的警告連接清除。

至於返回值,若是新的當前行有效,則爲true;若是沒有更多行,則爲false.

可是要特別注意,next()方法用一次,遊標就日後移了一位,此時再使用next()來獲取結果就是結果集中的第二個記錄了。

相關文章
相關標籤/搜索