一篇文章帶你了解java數(shù)據(jù)庫連接
一、下載安裝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)容!
- Java連接MySQL數(shù)據(jù)庫實(shí)例
- Java使用JDBC連接數(shù)據(jù)庫的詳細(xì)步驟
- 詳解Java使用JDBC連接MySQL數(shù)據(jù)庫
- Java使用JDBC連接數(shù)據(jù)庫
- Java使用JNDI連接數(shù)據(jù)庫的實(shí)現(xiàn)方法
- Java連接MySQL數(shù)據(jù)庫命令行程序過程
- 詳細(xì)說明關(guān)于Java的數(shù)據(jù)庫連接(JDBC)
- 詳解Java數(shù)據(jù)庫連接池
- Java基礎(chǔ)之JDBC的數(shù)據(jù)庫連接與基本操作
- Java 數(shù)據(jù)庫連接(JDBC)的相關(guān)總結(jié)
- Java 如何使用JDBC連接數(shù)據(jù)庫
- Java連接數(shù)據(jù)庫的步驟介紹
相關(guān)文章
SpringValidation自定義注解及分組校驗(yàn)功能詳解
這篇文章主要介紹了SpringValidation自定義注解及分組校驗(yàn)功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01老生常談JVM的內(nèi)存溢出說明及參數(shù)調(diào)整
下面小編就為大家?guī)硪黄仙U凧VM的內(nèi)存溢出說明及參數(shù)調(diào)整。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03SpringBoot初始教程之Servlet、Filter、Listener配置詳解
本篇文章主要介紹了SpringBoot初始教程之Servlet、Filter、Listener配置詳解,具有一定的參考價(jià)值,有興趣的可以了解一下2017-09-09通過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-08SpringBoot中數(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ū)別,兩者都是常用的替換字符的方法,感興趣的小伙伴們可以參考一下2015-11-11