前言:本篇文章適用于所有前后端開發者
眾所周知,只要是編程,那肯定是需要存儲數據的,無論是c語言還是java,都離不開數據的讀寫,數據之間傳輸不止,這也就形成了現代互聯網的一種相互存在關系!
而讀寫存儲的方式又有很多種,每一種方式都有利弊,比如一段文字存儲在一個txt的文件中,如果要讀的時候點開,但是當用戶多的時候,就會有很多個txt文件來儲存信息,這就會造成一種卡頓現象。so,當數據庫出現的時候也就大部分的解決了這種問題,數據庫不僅僅可以存檔文本內容,并且可以加快文本內容的讀取,即使是有很多用戶一同訪問,也不會造成像打開txt文本程序這樣卡爆的擁擠現象。
數據庫有很多種,每一種數據庫有每一種數據庫的作用,他們存在的目的都是相同的,那就是讀寫存儲數據!
那么今天我們進行的教程為:java對接MySQL數據庫并且查詢數據
筆者軟件配置詳情:
MySQL版本:MySQL57
MySQL面板查看工具:Navivat Premium
JAVA:JDK--14.0.1
JAVA編程工具:eclipse
一.查看MySQL數據庫配置詳情


我這里的地址是:localhost
端口是:3306
用戶名:root
密碼:123456
注:這個是數據庫的鏈接信息,是必須知道的,連接名不用管


隨便建一個表(如果不會就去百度),如果你不建的話那等會就只能測試能不能連接成功,后面查詢表的教程就不用看了
二.將jar包導入項目并創建java文件
1.我們先創建一個項目,名為:UrlMySQL




2.在UrlMySQL項目中創建一個java_mysql包名


3.在java_mysql包中創建mysql.java




4.開始導入jar文件,如果沒有:點我下載
5.在項目創建一個lib文件


6.將jar文件移入lib文件


彈出窗口確認


這個時候我們的jar還不能用,繼續教程








這樣就算是導入完畢了
二.我們開始編寫代碼
1.導包,導入sql,用import
package java_mysql;
import java.sql.*;
public class mysql {
}
注:如果沒有導入jar包肯定報錯
2.整3個封裝的全局變量,分別為賬號密碼與數據庫鏈接地址
package java_mysql;
import java.sql.*;
public class mysql {
private String userName = "root";
private String password = "123456";
private String url = "jdbc:mysql://localhost:3306/yggl";
}
3.因為是封裝的,所以我們還要把它整出來
package java_mysql;
import java.sql.*;
public class mysql {
private String userName = "root";
private String password = "123456";
private String url = "jdbc:mysql://localhost:3306/yggl";
public String url()
{
return url;
}
public String name()
{
return userName;
}
public String mima()
{
return password;
}
}
4.搞個主函數main,我們要開始搞事情了
package java_mysql;
import java.sql.*;
public class mysql {
private String userName = "root";
private String password = "123456";
private String url = "jdbc:mysql://localhost:3306/yggl";
public String url()
{
return url;
}
public String name()
{
return userName;
}
public String mima()
{
return password;
}
public static void main(String[] args) {
}
}
5.加載驅動,這一步一定認真看著,我們用異常拋出就行了
try {
Class.forName("com.mysql.jdbc.Driver");//加載驅動
System.out.println("驅動加載成功!");
}
catch (ClassNotFoundException e)
{
System.out.println("加載失??!");
e.printStackTrace();
}
必看:MySQL 8.0 以下版本為com.mysql.jdbc.Driver
必看: MySQL 8.0 以上版本為com.mysql.cj.jdbc.Driver
留名:用MySQL57的是8.0以下版本,所以用com.mysql.jdbc.Driver
package java_mysql;
import java.sql.*;
public class mysql {
private String userName = "root";
private String password = "l56585470";
private String url = "jdbc:mysql://localhost:3306/yggl";
public String url()
{
return url;
}
public String name()
{
return userName;
}
public String mima()
{
return password;
}
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("驅動加載成功!");
}
catch (ClassNotFoundException e) { System.out.println("加載失敗!"); e.printStackTrace();} }
}
現在我們的代碼已經寫到這里了,我們一步一步解析,如果你看完本教程還不懂,那你就留言!!??!教程繼續
6.我們創建一個能跟mysql數據庫交互的2個東西,創建了先放在這里
Connection conn = null;
Statement stmt = null;
7.我們開始對接數據庫并查詢數據
try {
djmysql aa=new djmysql();
conn= DriverManager.getConnection(aa.url(),aa.name(), aa.mima());
System.out.println("數據庫連接成功!");
stmt = conn.createStatement();
String sql;
sql = "SELECT * FROM employees";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
int id = rs.getInt("員工編號");
String name = rs.getString("姓名");
String url = rs.getString("學歷");
String csrq=rs.getString("出生日期");
int xb=rs.getInt("性別");
int gznx=rs.getInt("工作年限");
String dz=rs.getString("地址");
System.out.print("ID: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 學歷: " + url);
System.out.print(", 出生日期: " + csrq);
System.out.print(", 性別: " + xb);
System.out.print(", 工作年限: " + gznx);
System.out.print(", 地址: " + dz);
System.out.print("n");
}
}
catch (SQLException e) { e.printStackTrace(); System.out.println("連接失?。?);}
以上就是連接后查詢的代碼,但是別急,我們慢慢分析
還記得上面封裝的3個變量吧
djmysql aa=new djmysql();
conn= DriverManager.getConnection(aa.url(),aa.name(), aa.mima());
解析:
conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/yggl","root","123456")
我們將它們取出并且開始鏈接數據庫最后將交互內容給conn,conn我們在上面也創建了
System.out.println("數據庫連接成功!");
stmt = conn.createStatement();//讀取數據庫數據方法
String sql;
sql = "SELECT * FROM employees";
ResultSet rs = stmt.executeQuery(sql);
數據庫鏈接成功后,我們就開始跟數據庫對話,我們要查詢數據庫的東西,并且將查詢的數據轉給rs,這里我們查詢的是表employees的所有內容


也就是這個表的所有東西
那么這些內容都存在ResultSet rs里面了,我們再通過while循環出所有數據就行了
while(rs.next()){
int id = rs.getInt("員工編號");
String name = rs.getString("姓名");
String url = rs.getString("學歷");
String csrq=rs.getString("出生日期");
int xb=rs.getInt("性別");
int gznx=rs.getInt("工作年限");
String dz=rs.getString("地址");
System.out.print("ID: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 學歷: " + url);
System.out.print(", 出生日期: " + csrq);
System.out.print(", 性別: " + xb);
System.out.print(", 工作年限: " + gznx);
System.out.print(", 地址: " + dz);
System.out.print("n");
}
我們知道數據表中的內容都是以橫豎排列的,所以這里的循環得一排一排的循環下去,一直到最后,使用next(),我們把指針移動到最后,再向最前面開始逐條讀取
int id = rs.getInt("員工編號");//獲取員工編號信息并轉換為int,我的mysql的員工編號結構類型為char,因為所有都是數字整形,所以我可以將它們轉換為int,mysql的char不是java的char,同理,大家可以舉一反三,這里偏向于java,不偏向于mysql




本篇所有代碼放出,注意接收
package java_mysql;
import java.sql.*;
public class mysql {
private String userName = "root";
private String password = "l56585470";
private String url = "jdbc:mysql://localhost:3306/yggl";
public String url()
{
return url;
}
public String name()
{
return userName;
}
public String mima()
{
return password;
}
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("驅動加載成功!");
}
catch (ClassNotFoundException e)
{
System.out.println("加載失?。?);
e.printStackTrace();}
try { mysql aa=new mysql();
conn= DriverManager.getConnection(aa.url(),aa.name(), aa.mima()); System.out.println("數據庫連接成功!");
stmt = conn.createStatement();
String sql; sql = "SELECT * FROM employees";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
int id = rs.getInt("員工編號");
String name = rs.getString("姓名");
String url = rs.getString("學歷");
String csrq=rs.getString("出生日期");
int xb=rs.getInt("性別");
int gznx=rs.getInt("工作年限");
String dz=rs.getString("地址");
System.out.print("ID: " + id);
System.out.print(", 姓名: " + name);
System.out.print(", 學歷: " + url);
System.out.print(", 出生日期: " + csrq);
System.out.print(", 性別: " + xb);
System.out.print(", 工作年限: " + gznx);
System.out.print(", 地址: " + dz); System.out.print("n");
}
}
catch (SQLException e)
{
e.printStackTrace();
System.out.println("連接失敗!");} }
}
注:MySQL8.0 以下版本 – JDBC 驅動名及數據庫 URL
com.mysql.jdbc.Driver
jdbc:mysql://localhost:3306/yggl
MySQL8.0 以上版本 – JDBC 驅動名及數據庫 URL
com.mysql.cj.jdbc.Driver
jdbc:mysql://localhost:3306/RUNOOB?useSSL=false&serverTimezone=UTC
互聯網發展迅速,可能你今年學到的東西明年就用不到了,所以,在他們更新的時候,我們也需要更新。
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。