一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - JDBC連接的六步實例代碼(與mysql連接)

JDBC連接的六步實例代碼(與mysql連接)

2021-07-02 21:05香風智乃哈~ Mysql

這篇文章主要給大家介紹了關于JDBC連接的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

JDBC的六步:

1.注冊驅動

2.獲取數據庫的連接

3.獲取數據庫的操作對象

4.執行sql語句

5.處理查詢結果集(如果執行的語句中沒有select語句這一步不用寫)

6.關閉資源

第一步:注冊驅動

?
1
2
3
4
5
6
7
8
9
10
11
//異常一定是需要處理的
//根據版本不同書寫的代碼有一些變化,老版本是
DriverManager.register(new com.mysql.jdbc.Driver());
//或者
Class.forName("com.mysql.jdbc.Driver");
 
 
//新版本是
DriverManager.register(new com.mysql.cj.jdbc.Driver());
//或者
Class.forName("com.mysql.cj.jdbc.Driver");

第二步:獲取數據庫的連接

?
1
2
3
4
5
6
7
8
9
10
11
//因為要進行try..catch,還要關閉這個資源,因此寫在try外邊且賦值為空
Connection conn = null;
...
//返回值是Connection,老版本和新版的url書寫也不一樣
// jdbc:mysql://localhost:3306/t_use這個前面的都一樣,把t_use更改為自己的數據庫名
//老版
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_use","用戶名","密碼");
 
 
//新版
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/t_use?serverTimezone=GMT%2B8","用戶名","密碼");

第三步:獲取數據庫操作對象

?
1
2
3
4
5
//這個和剛才的Connection是一樣的
Statement st = null;
...
//這樣就把對象創建好了
st = conn.createStatement();

第四步:執行sql語句

?
1
2
3
4
5
6
7
8
9
10
//引號里面寫sql語句
String sql = " ";
//再用剛才創建好的對象接入這個sql語句
//這里還有需要說的,如果不是select語句就用下面這個,返回值是一個int,這個就不需要第五步了
st.executeUpdate(sql);
 
//如果sql語句是select的話,就要用下面的這個語句了,還需要定義一個ResultSet對象,去接收這個值
//然后進行第五步的處理
ResultSet rs = null; //和Connection一樣的
rs = st.executeQuery(sql);

第五步:處理查詢結果集

?
1
2
3
4
//這個只有select語句才進行處理,不僅可以getString還可以getInt等
while(rs.next()){
    String str = rs.getString("需要輸出的字段的名字");
}

第六步:關閉資源

?
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
//前面五步都是在try里面進行的,第六步是在finally進行的
//關閉連接
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (st != null) {
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }

關閉連接也是有順序的,先關ResultSet,再關Statement對象,最后關Connection對象.

完整代碼

?
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package jdbc.com;
import com.mysql.cj.protocol.Resultset;
 
import java.sql.*;
public class Test02 {
    public static void main(String[] args) {
 
        Connection conn = null;
        Statement st = null;
        ResultSet rt = null;
        try {
            //注冊連接(可以寫到一行里面)
            //com.mysql.cj.jdbc.Driver Driver = new com.mysql.cj.jdbc.Driver();
            DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
            //獲取數據庫連接
            conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/liu2?serverTimezone=GMT%2B8","用戶名","密碼");
            //獲取數據庫操作對象
            st = conn.createStatement();
            //執行sql語句
            String sql = "select ename,sal from emp order by sal desc";
            rt = st.executeQuery(sql);
            //處理查詢語句
           while(rt.next()){
               String ename = rt.getString("ename");
               String sal = rt.getString("sal");
               System.out.println(ename + "," + sal);
           }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }finally {
            //關閉連接
            if (rt != null) {
                try {
                    rt.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (st != null) {
                try {
                    st.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
 
 
        }
    }
}

最后,這個如果要傳入值的話,可能會造成sql的注入,解決辦法就是把Statement變成PreparedStatement,就可以避免sql的注入問題了,只不過第三步和第四步代碼有點變化,就不再多說了。。

總結

到此這篇關于JDBC連接(與mysql連接)的文章就介紹到這了,更多相關JDBC與mysql連接內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/zhinaijiangya/article/details/116566015

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91九色在线视频 | 91免费精品国自产拍在线可以看 | 亚洲va国产日韩欧美精品色婷婷 | 2021日产国产麻豆 | 国产亚洲精品线观看77 | 亚洲好色网 | 国产欧美曰韩一区二区三区 | 草莓香蕉绿巨人丝瓜榴莲污在线观看 | yy3341殇情影院理论片 | 精品久久成人免费第三区 | 亚洲福利区 | 好男人资源大全免费观看 | 精品无人区乱码1区2区3区在线 | 俄罗斯引擎首页进入 | aaaa黄| 男人天堂日韩 | 国产美女做爰免费视频软件 | 国内免费高清视频在线观看 | 国产综合欧美日韩视频一区 | 99精品视频在线观看免费 | 久久伊人电影 | leslessexvideos日本 | 青青草视频国产 | 国产一卡2卡3卡四卡国色天香 | 69萝莉| 四虎影院精品 | 国产98在线 | 91色香sxmv最网页版新地址 | 欧美高清videosdesex0| 亚洲视频在线看 | 美女撒尿无遮挡免费中国 | 日日爽日日操 | 插鸡小说 | 青青草在线播放 | 青草国产在线观看 | china中国xxxxfree china国产bbw | japanese日本护士 | 国产精品成人免费福利 | 国产大片51精品免费观看 | 色综合久久综合网欧美综合网 | 日韩一级片在线免费观看 |