直接用Java對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作
JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫(kù)連接)是一種用于執(zhí)行SQL語(yǔ)句的Java API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪(fǎng)問(wèn)取董,它由一組用Java語(yǔ)言編寫(xiě)的類(lèi)和接口組成。JDBC提供了一種基準(zhǔn)兴垦,據(jù)此可以構(gòu)建更高級(jí)的工具和接口,使數(shù)據(jù)庫(kù)開(kāi)發(fā)人員能夠編寫(xiě)數(shù)據(jù)庫(kù)應(yīng)用程序字柠,同時(shí)探越,JDBC也是個(gè)商標(biāo)名。
首先要在maven里導(dǎo)入跟數(shù)據(jù)庫(kù)相連對(duì)jar包
百度搜索 Maven --> mvnrepository --> 輸入搜索mysql
image.png
點(diǎn)擊jar即為我們所需要對(duì)jar包
然后下載下來(lái) 存放到一個(gè)位置
image.png
1)第一個(gè)是DriverManager 她是一個(gè)實(shí)現(xiàn)類(lèi)窑业,是一個(gè)工廠(chǎng)钦幔,我要生成mysql的,我要生成oracle的等等常柄,那就是這個(gè)工廠(chǎng)來(lái)決定生成對(duì)象是什么
2)然后Driver是一個(gè)驅(qū)動(dòng)的接口鲤氢,也就是說(shuō)我得告訴你搀擂,我生成它那我得應(yīng)用什么呀,應(yīng)用我mysql的驅(qū)動(dòng)卷玉,應(yīng)用我oracle的驅(qū)動(dòng)
3)通過(guò)DriverManager進(jìn)行鏈接哨颂,連接到數(shù)據(jù)庫(kù),生成connection對(duì)象
- 這個(gè)connection對(duì)象生成之后相种,就可以生成執(zhí)行語(yǔ)句威恼,如果他是一個(gè)查詢(xún)結(jié)果那么可以把這個(gè)結(jié)果放到Resultset結(jié)果集接口里,由他進(jìn)行處理
開(kāi)始實(shí)驗(yàn)
首先在項(xiàng)目里把驅(qū)動(dòng)加進(jìn)來(lái) 也就是jar包
image.png
有以下的東西就表明加進(jìn)來(lái)了
image.png
新建包新建類(lèi) 開(kāi)始測(cè)試連接
package com.neuedu.dataconnection;
import java.sql.*;
public class MysqlConn {
public static void main(String[] args) {
/*
* 1:加載驅(qū)動(dòng)
* 2:進(jìn)行連接數(shù)據(jù)庫(kù)
* 1)使用DriverManager進(jìn)行連接
* 2)生成對(duì)象Connection
* 3:PareparedStatement對(duì)象執(zhí)行sql
* //4:結(jié)果集處理-- 只針對(duì)select的 處理
* 而對(duì)增刪改不作處理蚂子,返回的是影響的行數(shù) -- 添加沃测,刪除,修改
*
* //5:提交食茎,--使用自動(dòng)提交
*
* //6:關(guān)閉:從內(nèi)向外
* */
//1:加載驅(qū)動(dòng)
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 2:進(jìn)行連接數(shù)據(jù)庫(kù)
Connection connection=null;
PreparedStatement pstm=null;
ResultSet rs=null;
/*
* 1:url: jdbc:mysql://ip:3306/databasename
* jdbc:使用jdbc連接數(shù)據(jù)庫(kù)
* mysql:連接的mysql的數(shù)據(jù)庫(kù),使用mysql的驅(qū)動(dòng)
* IP:數(shù)據(jù)庫(kù)所在的服務(wù)器地址:如果是本地:127.0.0.1|localhost馏谨,如果不是本地IP
* 3306:端口號(hào)别渔,默認(rèn)
* databasename:數(shù)據(jù)庫(kù)名
* 2:username:數(shù)據(jù)庫(kù)用戶(hù)名
* 3:password:用戶(hù)名對(duì)應(yīng)的密碼
* */
String url="jdbc:mysql://127.0.0.1:3306/hr";
String username="root";
String password="123456";
try {
connection= DriverManager.getConnection(url,username,password);
// 3:PreparedStatement對(duì)象執(zhí)行sql
String sql="select * from employees";
pstm=connection.prepareStatement(sql);//預(yù)編譯SQL語(yǔ)句
//4:結(jié)果集處理 只有select用的query,其他的增刪改都用executeUpdate
rs = pstm.executeQuery();
//ResultSet相當(dāng)于把查詢(xún)出來(lái)的所有數(shù)據(jù)放到了表格里面惧互,然后它一行一行的讀 提取數(shù)據(jù)
while(rs.next()){
//通過(guò)列名列號(hào)都可以把數(shù)據(jù)提取出來(lái)
System.out.println(rs.getObject(1)+" "+rs.getObject("salary"));
}
//5:自動(dòng)提交
/* System.out.println(connection);*/
} catch (SQLException e) {
e.printStackTrace();
}finally {
//6:關(guān)閉
try {
if(rs!=null){
rs.close();
}
if(pstm!=null){
pstm.close();
}
if(connection!=null){
connection.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
測(cè)試成功如下:
image.png