激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

香港云服务器
服務器之家 - 編程語言 - JAVA教程 - Jdbc的步驟以及簡單實現代碼

Jdbc的步驟以及簡單實現代碼

2020-05-31 13:23java教程網 JAVA教程

下面小編就為大家帶來一篇Jdbc的步驟以及簡單實現代碼。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

創建一個以JDBC連接數據庫的程序,包含7個步驟:  

1、加載JDBC驅動程序:  

在連接數據庫之前,首先要加載想要連接的數據庫的驅動到JVM(Java虛擬機),這通過java.lang.Class類的靜態方法forName(String  className)實現。  

例如:

?
1
2
3
4
5
6
7
try
//加載MySql的驅動類
Class.forName("com.mysql.jdbc.Driver") ; 
}catch(ClassNotFoundException e){ 
System.out.println("找不到驅動程序類 ,加載驅動失敗!"); 
e.printStackTrace() ; 

成功加載后,會將Driver類的實例注冊到DriverManager類中。  

2、提供JDBC連接的URL  

•連接URL定義了連接數據庫時的協議、子協議、數據源標識。  

•書寫形式:協議:子協議:數據源標識  

協議:在JDBC中總是以jdbc開始  

子協議:是橋連接的驅動程序或是數據庫管理系統名稱。  

數據源標識:標記找到數據庫來源的地址與連接端口。  

例如:(MySql的連接URL)  

jdbc:mysql:  

//localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:

表示使用Unicode字符集。

如果characterEncoding設置為  

gb2312或GBK,本參數必須設置為true 。

characterEncoding=gbk:字符編碼方式。  

3、創建數據庫的連接  

•要連接數據庫,需要向java.sql.DriverManager請求并獲得Connection對象,該對象就代表一個數據庫的連接。  

•使用DriverManager的getConnectin(String url , String username ,String password )

方法傳入指定的欲連接的數據庫的路徑、數據庫的用戶名和密碼來獲得。  

例如:

?
1
2
3
4
5
6
7
8
9
10
11
//連接MySql數據庫,用戶名和密碼都是root
 String url = "jdbc:mysql://localhost:3306/test" ;
 String username = "root"
 String password = "root"
try
Connection con =
 DriverManager.getConnection(url , username , password ) ; 
 }catch(SQLException se){ 
System.out.println("數據庫連接失?。?quot;); 
se.printStackTrace() ; 
 }

4、創建一個Statement  

•要執行SQL語句,必須獲得java.sql.Statement實例,Statement實例分為以下3種類型:  

1、執行靜態SQL語句。通常通過Statement實例實現。  

2、執行動態SQL語句。通常通過PreparedStatement實例實現。  

3、執行數據庫存儲過程。通常通過CallableStatement實例實現。  

具體的實現方式:

?
1
2
3
4
Statement stmt = con.createStatement() ; 
PreparedStatement pstmt = con.prepareStatement(sql) ; 
CallableStatement cstmt =
con.prepareCall("{CALL demoSp(? , ?)}") ;

5、執行SQL語句  

Statement接口提供了三種執行SQL語句的方法:executeQuery 、executeUpdate和execute  

1、ResultSet executeQuery(String sqlString):執行查詢數據庫的SQL語句   ,返回一個結果集(ResultSet)對象。  

2、int executeUpdate(String sqlString):用于執行INSERT、UPDATE或DELETE語句以及SQL DDL語句,如:CREATE TABLE和DROP TABLE等  

3、execute(sqlString):用于執行返回多個結果集、多個更新計數或二者組合的語句。  

具體實現的代碼:

?
1
2
3
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; 
int rows = stmt.executeUpdate("INSERT INTO ...") ; 
boolean flag = stmt.execute(String sql) ; 

6、處理結果  

兩種情況:

1、執行更新返回的是本次操作影響到的記錄數。  
2、執行查詢返回的結果是一個ResultSet對象。  

• ResultSet包含符合SQL語句中條件的所有行,并且它通過一套get方法提供了對這些行中數據的訪問。  

• 使用結果集(ResultSet)對象的訪問方法獲取數據:  

while(rs.next()){  
String name = rs.getString("name") ;  
String pass = rs.getString(1) ; // 此方法比較高效
}  

(列是從左到右編號的,并且從列1開始)  

7、關閉JDBC對象

操作完成以后要把所有使用的JDBC對象全都關閉,以釋放JDBC資源,關閉順序和聲明順序相反:  

1、關閉記錄集  
2、關閉聲明  
3、關閉連接對象 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package me.clfeng.jdbc;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
 
public class DBHelper {
 
  public static final String url = "jdbc:mysql://localhost:3306/mybatis";
  public static final String name = "com.mysql.jdbc.Driver";
  public static final String username = "root";
  public static final String password = "123456";
 
  public Connection conn = null;
  public PreparedStatement statement = null;
 
  public DBHelper(String sql) {
    try {
      Class.forName(name);// 指定連接類型
      conn = DriverManager.getConnection(url, username, password);// 獲取連接
      statement = conn.prepareStatement(sql);// 準備執行語句
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  //釋放資源
  public void close() {
    try {
      this.conn.close();
      this.statement.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
 
  }
}

測試代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package me.clfeng.jdbc;
 
import java.sql.ResultSet;
 
public class JdbcTest {
  
  static String sql = null;
  static DBHelper dbHelper = null;
  static ResultSet resultSet = null;
 
  public static void main(String[] args) {
    sql = "select * from user";
    dbHelper = new DBHelper(sql);
 
    try {
      resultSet = dbHelper.statement.executeQuery();// 執行語句,得到結果集
      while (resultSet.next()) {
        int id = resultSet.getInt(1);
        String name = resultSet.getString(2);
        int age = resultSet.getInt(3);
        System.out
            .println("id=" + id + ",name=" + name + ",age=" + age);
      }
 
      resultSet.close();
      dbHelper.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
 
}

以上這篇Jdbc的步驟以及簡單實現代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
312
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 久久精品日产高清版的功能介绍 | 制服丝袜成人动漫 | 成年人国产视频 | 亚洲99 | 99极品视频 | 久久国产精品小视频 | 亚州精品天堂中文字幕 | 国产色视频免费 | 久久97超碰| 综合在线一区 | 高清av免费 | 国产福利视频在线观看 | 久久久国产电影 | 久久中文免费 | 国产精品久久久久久久久久免 | 高清一区二区在线观看 | 黄色片网站在线看 | 欧美视频一区二区三区 | 亚洲综合无码一区二区 | 99爱国产精品 | 日韩中文字幕一区二区三区 | 中文字幕 亚洲一区 | 本色视频aaaaaa一级网站 | 久草在线最新 | 欧美激情精品久久久久久久久久 | 777zyz色资源站在线观看 | 国产精品一区二区三区在线看 | 中国久久久 | 久久久久久久久成人 | 日本a∨精品中文字幕在线 被啪羞羞视频在线观看 | 亚洲综合色视频在线观看 | 99亚洲国产精品 | av电影网站在线观看 | 久久久久久久久久久高潮一区二区 | 免费国产自久久久久三四区久久 | 国产毛片网 | 久久久久久久久国产 | 国产自91精品一区二区 | 综合精品在线 | av成人免费看 | 91看片儿|