Java學習-JDBC(一)

JDBC

概念
  • JDBC(Java Database Connectivity)Java數據庫連接
  • JDBC提供了一組獨立于任何數據庫管理系統的API
  • Java提供接口規范,由各個數據庫廠商提供接口的實現,廠商提供的實現類封裝成jar文件,也就是我們俗稱的數據庫驅動jar包
  • JDBC充分體現了面向接口編程的好處,程序員只關心標準和規范,無需關注實現過程
    在這里插入圖片描述
核心組成
接口規范
  • 為了項目代碼的可移植性,可維護性,SUN公司制訂了Java程序連接數據庫的統一接口規范,不管連接哪種DBMS軟件,Java代碼可以保持一致
  • 接口存儲在java.sql和javax.sql包下
實現規范
  • 各個數據庫廠商DBMS各不相同,各自內部如何通過SQL實現增、刪、改、查等操作管理數據,廠商最清楚,接口規范的實現由各個數據庫廠商自己實現
  • 廠商將實現內容和過程封裝成jar文件,程序員只需在項目中引入jar文件,就可以進行開發了
搭建環境
  • ①準備數據庫

//創建數據庫和表
create database jdbc;
use jdbc;
create table t_emp(emp_id int auto_increment comment ‘員工編號’ primary key,
emp_name varchar(100)not null comment’員工姓名’,
emp_salary double(10,5) not null comment’員工薪資’,
emp_age int not null comment ‘員工年齡’);
insert into t_emp(emp_name,emp_salary,emp_age) values(‘edison’,777.77,23),(‘dizzy’,888.88,24),(‘tye’,999.99,25),(‘water’,333.33,27);

```bash
mysql> use jdbc
Database changed
mysql> show tables;
+----------------+
| Tables_in_jdbc |
+----------------+
| t_emp          |
+----------------+
1 row in set (0.00 sec)mysql> select * from t_emp-> ;
+--------+----------+------------+---------+
| emp_id | emp_name | emp_salary | emp_age |
+--------+----------+------------+---------+
|      1 | edison   |  777.77000 |      23 |
|      2 | dizzy    |  888.88000 |      24 |
|      3 | tye      |  999.99000 |      25 |
|      4 | water    |  333.33000 |      27 |
+--------+----------+------------+---------+
4 rows in set (0.00 sec)
  • ②根據安裝數據庫版本官方下載驅動jar包
  • ③創建Java項目,在項目下創建lib文件夾,將下載的驅動復制到lib文件夾
  • ④選中lib文件夾,右鍵->Add as Libary,與項目集成
    在這里插入圖片描述
    在這里插入圖片描述
  • ⑤編寫代碼
package com.lotus.base;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;/*** 基礎測試代碼*/
public class JDBCQuick {public static void main(String[] args) throws Exception {//1.注冊驅動Class.forName("com.mysql.cj.jdbc.Driver");//2.獲取連接對象String url = "jdbc:mysql://192.168.29.201:3306/jdbc";String username = "root";String password = "Lotus!1120";Connection conn = DriverManager.getConnection(url,username,password);//3.獲取執行SQL語句對象Statement statement = conn.createStatement();//4.編寫SQL語句并執行,接收返回結果集String statement_sql = "select * from jdbc.t_emp";ResultSet rs = statement.executeQuery(statement_sql);//5.處理結果,遍歷while (rs.next()) {int emp_id = rs.getInt("emp_id");String emp_name = rs.getString("emp_name");double emp_salary = rs.getDouble("emp_salary");int emp_age = rs.getInt("emp_age");System.out.println(emp_id + "\t" + emp_name + "\t" + emp_salary + "\t" + emp_age);}//6.釋放資源rs.close();statement.close();conn.close();}
}
//執行結果
1	edison	777.77	23
2	dizzy	888.88	24
3	tye	999.99	25
4	water	333.33	27

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/24413.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/24413.shtml
英文地址,請注明出處:http://en.pswp.cn/web/24413.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

什么是虛擬局域網?快解析有哪些的虛擬化應用功能?

什么是虛擬局域網?從字面上理解就是不是真實存在的局域網。虛擬局域網是將網絡用戶和設備集中在一起,從而可以對不同地域和商業的需要有一定的支持性。虛擬局域網有它的優點,在使用過程中可以為企業提供更安全、更穩定、更靈活的服務保障體系…

記錄jenkins pipeline ,git+maven+sonarqube+打包鏡像上傳到阿里云鏡像倉庫

1、階段視圖: 2、準備工作 所需工具與插件 jdk:可以存在多版本 maven:可以存在多版本 sonar-scanner 憑證令牌 gitlab:credentialsId sonarqube:配置在sonarqube208服務中 3、jenkinsfile pipeline {agent anystages {stage(從…

ugpowermill編程入門:從基礎到進階的全面解析

ugpowermill編程入門:從基礎到進階的全面解析 在制造行業中,UG PowerMill編程是一款廣泛應用的數控編程軟件,它以其高效、精確的加工能力深受工程師們的喜愛。對于初學者來說,如何快速入門并熟練掌握UG PowerMill編程技能是一項重…

Mac怎么讀取內存卡 Mac如何格式化內存卡

在今天的數字化時代,內存卡已經成為了我們生活中不可或缺的一部分。對于Mac電腦用戶而言,正確地讀取和管理內存卡中的數據至關重要。下面我們來看看Mac怎么讀取內存卡,Mac如何格式化內存卡的相關內容。 一、Mac怎么讀取內存卡 蘋果電腦在讀…

Base64 編碼表 參考

Base64的編碼是由下面的64個字符加上一個墊字符"" 一共65個字符集來完成的,他用 4 個 base64 字符去表示 3 個 ASCII 碼字符。 Base64字符串判斷可參考 golang判斷字符串是否base64編碼的字符串算法, 可準確判斷是或否 附帶單元測試用例和模糊…

Python中__面向對象__學習 (上)

目錄 一、類和對象 1.類的定義 2.根據對象創建類 二、構造和析構 1.構造方法 (1)不帶參數的構造方法 (2)帶參數的構造方法 2.析構方法 三、重載 1.定制對象的字符串形式 (1)只重載__str__方法 …

QT Udp廣播實現設備發現

測試環境 本文選用pc1作為客戶端,pc2,以及一臺虛擬機作為服務端。 pc1,pc2(客戶端): 虛擬機(服務端): 客戶端 原理:客戶端通過發送廣播消息信息到ip:255.255.255.255(QHostAddress::Broadcast),局域網…

了解Java內存模型(Java Memory Model, JMM)

了解Java內存模型(Java Memory Model, JMM) Java內存模型(Java Memory Model, JMM)是Java語言規范中規定的一組規則,定義了多線程程序中變量(包括實例字段、靜態字段和數組元素)的訪問方式。JM…

git 大文件上傳失敗 Please remove the file from history and try again.

根據提示執行命令 --- 查找到當前文件 git rev-list --objects --all | grep b24e74b34e7d482e2bc687e017c8ab28cd1d24b6git filter-branch --tree-filter rm -f 文件名 --tag-name-filter cat -- --all git push origin --tags --force git push origin --all --force

Fort Firewall防火墻工具v3.12.13

軟件介紹 Fort Firewall是一款開源系統的免費防火墻,體積小巧、占用空間不大,可以為用戶的電腦起到保護作用,該軟件可以控制程序訪問網絡,控制用戶的電腦網速,用戶可以更輕松便捷的進行網絡安全防護,保護系…

c# Attribute特性示范

[MyCustomAttribute("Example")] 中括號寫在類前,表示此類具有此特性。 ”property” 譯為“屬性 Attribute用特性描述 using System;// 定義一個自定義特性 public class MyCustomAttribute : Attribute {public string Value { get; set; }public My…

什么是鏡像源

鏡像源在計算機領域中是一個重要的概念,下面我將用分點的方式清晰解釋鏡像源的定義、作用以及特點: 1. 定義 鏡像源(Mirror):是一個服務器,它存儲了另一個服務器上的某些或全部內容的副本。這些內容可以包…

Sony前端連接功放:深度解析與實用指南

Sony前端連接功放:深度解析與實用指南 在音響設備連接中,Sony前端與功放的連接常常是一個令人困惑卻又至關重要的環節。本文將從四個方面、五個方面、六個方面和七個方面詳細解析Sony前端連接功放的步驟、技巧及注意事項,旨在幫助讀者輕松完…

計算機網絡 —— 網絡層(IP數據報)

計算機網絡 —— 網絡層(IP數據報) 網絡層要滿足的功能IP數據報IP數據報格式IP數據報首部格式數據部分 IP數據報分片 我們今天進入網絡層的學習。 網絡層要滿足的功能 網絡層作為OSI模型中的第三層,是計算機網絡體系結構的關鍵組成部分&…

實驗六、IPv4 地址的子網劃分,第 2 部分《計算機網絡》

你有沒有發現,困的時候真的清醒不了。 目錄 一、實驗目的 二、實驗內容 三、實驗小結 一、實驗目的 完成本練習之后,您應該能夠確定給定 IP 地址和子網掩碼的子網信息。 知道 IP 地址、網絡掩碼和子網掩碼后,您應該能夠確定有關該 IP 地…

SpringBoot實現參數校驗攔截(采用AOP方式)

一、AOP是什么? 目的:分離橫切關注點(如日志記錄、事務管理)與核心業務邏輯。 優勢:提高代碼的可讀性和可維護性。 關鍵概念 切面(Aspect):包含橫切關注點代碼的模塊。通知&#xff…

【2024最新華為OD-C/D卷試題匯總】[支持在線評測] 運輸時間(200分) - 三語言AC題解(Python/Java/Cpp)

?? 大家好這里是清隆學長 ,一枚熱愛算法的程序員 ? 本系列打算持續跟新華為OD-C/D卷的三語言AC題解 ?? ACM銀牌??| 多次AK大廠筆試 | 編程一對一輔導 ?? 感謝大家的訂閱? 和 喜歡?? ??在線評測鏈接 運輸時間(200分) ?? 評測功能需要訂閱專欄后私信聯系清隆解…

【面試干貨】索引的優缺點

【面試干貨】索引的優缺點 1、創建索引可以大大提高系統的性能(**優點**)2、增加索引也有許多不利的方面(**缺點**) 💖The Begin💖點點關注,收藏不迷路💖 1、創建索引可以大大提高系…

LiDAR360MLS 7.2.0 雷達點云數據處理軟件功能介紹

新增模塊和功能: 支持手持、背包數據的解算 SLAM解算成功率提升 SLAM解算效率提升 采集端與后處理端保持一致 賦色優化 新增平面圖模塊 新增平面圖全自動矢量化功能 新增平面圖矢量一鍵導出DXF功能 新增平面圖正射影像一鍵導出功能 支持交叉、垂直繪制 支…

添加west擴展命令

使用west工具的幫助命令,west -h,不僅可以列出west工具的內置命令,也可以列舉當前工程中實現的擴展命令,如build,flash等。 本文將介紹如何添加擴展命令。 west擴展命令的位置通過以下方式查找: 1. 首先找…