欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章帶你了解java數(shù)據(jù)庫連接

 更新時(shí)間:2021年08月04日 15:13:28   作者:wwwzhouzy  
這篇文章主要介紹了Java基于連接數(shù)據(jù)庫及顯示數(shù)據(jù)操作,結(jié)合實(shí)例形式分析了Java使用jdbc進(jìn)行mysql數(shù)據(jù)庫連接與數(shù)據(jù)讀取、顯示等相關(guān)操作技巧,需要的朋友可以參考下

一、下載安裝mysql

下載地址:https://dev.mysql.com/downloads/connector/j/

可以選擇對(duì)應(yīng)的版本下載,最新的是8.0版本,本章使用的是5.0版本

二、引入驅(qū)動(dòng)包

驅(qū)動(dòng)包下載:mysql-connector-java-5.1.39-bin.jar

MySQL 8.0 以上版本的數(shù)據(jù)庫連接有所不同:

  • 1、MySQL 8.0 以上版本驅(qū)動(dòng)包版本 mysql-connector-java-8.0.16.jar。
  • 2、com.mysql.jdbc.Driver 更換為 com.mysql.cj.jdbc.Driver。
  • MySQL 8.0 以上版本不需要建立 SSL 連接的,需要顯示關(guān)閉。
  • allowPublicKeyRetrieval=true 允許客戶端從服務(wù)器獲取公鑰。
  • 最后還需要設(shè)置 CST。

加載驅(qū)動(dòng)與連接數(shù)據(jù)庫方式如下:

Class.forName("com.mysql.cj.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_demo?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","password");

三、示例

1、引驅(qū)動(dòng)包

2、建表

CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站點(diǎn)名稱',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '國(guó)家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;

3、添加數(shù)據(jù)

INSERT INTO `test_demo`.`websites` (`id`, `name`, `url`, `alexa`, `country`) VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA');
INSERT INTO `test_demo`.`websites` (`id`, `name`, `url`, `alexa`, `country`) VALUES ('2', '淘寶', 'https://www.taobao.com/', '13', 'CN');
INSERT INTO `test_demo`.`websites` (`id`, `name`, `url`, `alexa`, `country`) VALUES ('3', 'java入門', 'https://blog.csdn.net/wwwzhouzy/category_11249888.html', '5892', '');
INSERT INTO `test_demo`.`websites` (`id`, `name`, `url`, `alexa`, `country`) VALUES ('4', '微博', 'http://weibo.com/', '20', 'CN');
INSERT INTO `test_demo`.`websites` (`id`, `name`, `url`, `alexa`, `country`) VALUES ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');

4、代碼連接

package com.zhouzy.base.t11;
import java.sql.*;

public class MysqlTest {
	 // MySQL 8.0 以下版本 - JDBC 驅(qū)動(dòng)名及數(shù)據(jù)庫 URL
    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";  
    static final String DB_URL = "jdbc:mysql://localhost:3306/test_demo";
    // MySQL 8.0 以上版本 - JDBC 驅(qū)動(dòng)名及數(shù)據(jù)庫 URL
    //static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
    //static final String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
 
    // 數(shù)據(jù)庫的用戶名與密碼,需要根據(jù)自己的設(shè)置
    static final String USER = "root";
    static final String PASS = "123456";
    public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try{
            // 注冊(cè) JDBC 驅(qū)動(dòng)
            Class.forName(JDBC_DRIVER);
            // 打開鏈接
            System.out.println("連接數(shù)據(jù)庫...");
            conn = DriverManager.getConnection(DB_URL,USER,PASS);
            // 執(zhí)行查詢
            System.out.println(" 實(shí)例化Statement對(duì)象...");
            stmt = conn.createStatement();
            String sql;
            sql = "SELECT id, name, url FROM websites";
            ResultSet rs = stmt.executeQuery(sql);
            // 展開結(jié)果集數(shù)據(jù)庫
            while(rs.next()){
                // 通過字段檢索
                int id  = rs.getInt("id");
                String name = rs.getString("name");
                String url = rs.getString("url");
                // 輸出數(shù)據(jù)
                System.out.print("ID: " + id);
                System.out.print(", 站點(diǎn)名稱: " + name);
                System.out.print(", 站點(diǎn) URL: " + url);
                System.out.print("\n");
            }
            // 完成后關(guān)閉
            rs.close();
            stmt.close();
            conn.close();
        }catch(SQLException se){
            // 處理 JDBC 錯(cuò)誤
            se.printStackTrace();
        }catch(Exception e){
            // 處理 Class.forName 錯(cuò)誤
            e.printStackTrace();
        }finally{
            // 關(guān)閉資源
            try{
                if(stmt!=null) stmt.close();
            }catch(SQLException se2){
            }// 什么都不做
            try{
                if(conn!=null) conn.close();
            }catch(SQLException se){
                se.printStackTrace();
            }
        }
        System.out.println("再見!");
    }
}

結(jié)果:

連接數(shù)據(jù)庫...
實(shí)例化Statement對(duì)象...
ID: 1, 站點(diǎn)名稱: Google, 站點(diǎn) URL: https://www.google.cm/
ID: 2, 站點(diǎn)名稱: 淘寶, 站點(diǎn) URL: https://www.taobao.com/
ID: 3, 站點(diǎn)名稱: java入門, 站點(diǎn) URL: https://blog.csdn.net/wwwzhouzy/category_11249888.html
ID: 4, 站點(diǎn)名稱: 微博, 站點(diǎn) URL: http://weibo.com/
ID: 5, 站點(diǎn)名稱: Facebook, 站點(diǎn) URL: https://www.facebook.com/
再見!

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • SpringValidation自定義注解及分組校驗(yàn)功能詳解

    SpringValidation自定義注解及分組校驗(yàn)功能詳解

    這篇文章主要介紹了SpringValidation自定義注解及分組校驗(yàn)功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • 老生常談JVM的內(nèi)存溢出說明及參數(shù)調(diào)整

    老生常談JVM的內(nèi)存溢出說明及參數(shù)調(diào)整

    下面小編就為大家?guī)硪黄仙U凧VM的內(nèi)存溢出說明及參數(shù)調(diào)整。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Java中的Semaphore如何使用

    Java中的Semaphore如何使用

    Semaphore實(shí)際上是一種共享鎖,因?yàn)樗试S多個(gè)線程并發(fā)獲取共享的資源,在Semaphore對(duì)象創(chuàng)建時(shí)必須設(shè)置可用令牌的初始數(shù)量permits,用于控制并發(fā)時(shí)同時(shí)獲取資源權(quán)限的線程數(shù)量,這篇文章主要介紹了Java中的Semaphore如何使用,需要的朋友可以參考下
    2022-06-06
  • Mybatis兩種不同批量插入方式的區(qū)別

    Mybatis兩種不同批量插入方式的區(qū)別

    隨著業(yè)務(wù)需要,有時(shí)我們需要將數(shù)據(jù)批量添加到數(shù)據(jù)庫,mybatis提供了將list集合循環(huán)添加到數(shù)據(jù)庫的方法,這篇文章主要給大家介紹了關(guān)于Mybatis兩種不同批量插入方式的區(qū)別,需要的朋友可以參考下
    2021-09-09
  • Java中ArrayList的使用方法簡(jiǎn)單介紹

    Java中ArrayList的使用方法簡(jiǎn)單介紹

    這篇文章主要為大家簡(jiǎn)單介紹了Java中ArrayList的使用方法,針對(duì)ArrayList去重問題進(jìn)行擴(kuò)展分析,感興趣的小伙伴們可以參考一下
    2016-07-07
  • SpringBoot初始教程之Servlet、Filter、Listener配置詳解

    SpringBoot初始教程之Servlet、Filter、Listener配置詳解

    本篇文章主要介紹了SpringBoot初始教程之Servlet、Filter、Listener配置詳解,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-09-09
  • 通過Mybatis實(shí)現(xiàn)單表內(nèi)一對(duì)多的數(shù)據(jù)展示示例代碼

    通過Mybatis實(shí)現(xiàn)單表內(nèi)一對(duì)多的數(shù)據(jù)展示示例代碼

    最近做項(xiàng)目遇到這樣的需求要求將表中的數(shù)據(jù),按照一級(jí)二級(jí)分類返回給前端json數(shù)據(jù),下面通過本文給大家分享通過Mybatis實(shí)現(xiàn)單表內(nèi)一對(duì)多的數(shù)據(jù)展示示例代碼,感興趣的朋友參考下吧
    2017-08-08
  • Java程序生成Access文件代碼實(shí)例

    Java程序生成Access文件代碼實(shí)例

    這篇文章主要介紹了Java程序生成Access文件代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • SpringBoot中數(shù)據(jù)傳輸對(duì)象(DTO)的實(shí)現(xiàn)

    SpringBoot中數(shù)據(jù)傳輸對(duì)象(DTO)的實(shí)現(xiàn)

    本文主要介紹了SpringBoot中數(shù)據(jù)傳輸對(duì)象(DTO)的實(shí)現(xiàn),包括了手動(dòng)創(chuàng)建DTO、使用ModelMapper和Lombok創(chuàng)建DTO的示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-07-07
  • 淺談java中replace()和replaceAll()的區(qū)別

    淺談java中replace()和replaceAll()的區(qū)別

    這篇文章主要介紹了java中replace()和replaceAll()的區(qū)別,兩者都是常用的替換字符的方法,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評(píng)論