java連接數(shù)據(jù)庫
刷新權(quán)限: flush privileges;
1娇掏、 DCL操作 項目經(jīng)理 或 DBA
管理用戶
創(chuàng)建用戶,給與用戶操作數(shù)據(jù)的權(quán)限
創(chuàng)建一個地址 用戶名為小月月 所在數(shù)據(jù)庫主機地址是 localhost 初始化密碼
create use 'xiaoyueyue'@'localhost' identified by '111111';
授予新用戶權(quán)限
grant all on javaee1707.*to'xiaoyueyue'@'localhost';
取消權(quán)限
rekvoke all on javaee1707.* from 'xiaoyueyue'@'localhost';
刪除權(quán)限
drop user 'xiaoyueyue'@'localhost';
2湃鹊、DTL 事務(wù)處理 【非常重要】
銀行 從xxx的賬戶轉(zhuǎn)賬給我 20w村缸。雙方賬戶不能出現(xiàn)任何問題
在mySQL中 提供了 ctrl + z 的操作(撤銷)
開啟事務(wù)
開啟事務(wù)方式一: start transaction
------\回滾 如果造作的過程中發(fā)生了異常汉形。可以混滾到事務(wù)開始之前 包含數(shù)據(jù)
方式二:set autocommit = 0;
提交事務(wù)開始之后的所有操作简僧;
commit
使用命令行導(dǎo)入導(dǎo)出數(shù)據(jù)庫
使用命令行導(dǎo)入導(dǎo)出 要求:在未登陸狀態(tài)
導(dǎo)出的是一個 .sql文件建椰。里面包含了素有的數(shù)據(jù)庫操作信息
導(dǎo)出數(shù)據(jù)庫:mysqldump -uroot -p 數(shù)據(jù)庫名 > 數(shù)據(jù)庫名.sql
導(dǎo)入數(shù)據(jù)庫 要求導(dǎo)入的指定數(shù)據(jù)庫 必須存在 (要求數(shù)據(jù)庫中必須先創(chuàng)建好一個數(shù)據(jù)庫來接收數(shù)據(jù))
mysql -uroot -p 要導(dǎo)入到的數(shù)據(jù)庫的名字 < 數(shù)據(jù)庫名.sql;
JDBC 介紹
java database connectivity
常用數(shù)據(jù)庫 MySQL Oracle AQLServer
為了簡化 同意對數(shù)據(jù)庫的操作岛马,Java中定義了一套操作數(shù)據(jù)庫的規(guī)范棉姐,JDBC
JDBC主要是通過接口實現(xiàn)的 組成JDBC的有兩個包
java.sql javax.sql 這兩個包是在JavaSE中包含的
需要導(dǎo)入JDBC的實現(xiàn)類才可以使用屠列,這個實現(xiàn)類不是sun公司提供的,是由第三方數(shù)據(jù)庫提供商來完成
JDBC主要的接口和類
Driver接口:連接數(shù)據(jù)庫的驅(qū)動API 會用到反射 class.foeName('完整的類名')伞矩;包名.類名
DriverManager : 驅(qū)動管理類 笛洛,負(fù)責(zé)驅(qū)動的注冊(加載),獲取數(shù)據(jù)庫連接
Statement 接口:負(fù)責(zé)SQL語句的執(zhí)行
PreparedStatement--| 負(fù)責(zé)SQL語句的預(yù)處理乃坤,(預(yù)先加載)
ResultSet: 處理 查詢數(shù)據(jù)庫的 結(jié)果集
獲取mysql的JDBC jar包
把jar包導(dǎo)入到項目中
1苛让、在項目下新建libs目錄
2、復(fù)制jar包到libs目錄下
3湿诊、在jar包商右鍵 ->build path ->add to build path
通過JDBC連接數(shù)據(jù)庫
1狱杰、確定數(shù)據(jù)庫的URL 統(tǒng)一資源定位符
jdbc:mysql://localhost:3306/javaee1707?SSL = true
協(xié)議:子協(xié)議://ip:端口號/數(shù)據(jù)庫厅须?參數(shù)
協(xié)議:JDBC總協(xié)議
子協(xié)議:目前使用的是連接MySQL數(shù)據(jù)庫的協(xié)議
IP: 是服務(wù)器的IP地址仿畸,localhost表示的是本機的IP地址
3306:mysql數(shù)據(jù)庫默認(rèn)的端口號,可以修改
數(shù)據(jù)庫:目前連接的數(shù)據(jù)庫是哪一個
參數(shù):常用參數(shù)朗和。例如 useUnicode = true&chacacterEncoding = ut-8
2错沽、連接數(shù)據(jù)庫需要用戶名和密碼
JDBC連接到數(shù)據(jù)庫的推薦方式
1、注冊驅(qū)動 JDBC連接MySQL
Class.forName("com.mysql.jdbc.Driver");
會加載com.mysql.jdbc.Driver類文件到內(nèi)存當(dāng)中眶拉,而在這個類文件中有以下一段代碼
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException("Can't register driver!");
}
}
這個代碼是一個靜態(tài)代碼快千埃,它會在類文件加載到內(nèi)存的時候直接運行。
這個代碼塊完成了以下事情
1忆植、創(chuàng)建的MySQL連接的Java程序的JDBC.Driver(驅(qū)動)對象
2放可、將這個創(chuàng)建的Driver對象,注冊到j(luò)ava.sql.DriverManager(驅(qū)動管理器)里面唱逢。
這樣好處:簡化代碼邏輯
2吴侦、準(zhǔn)備URL 是JDBC連接MySQL數(shù)據(jù)庫的URL
String url = "jdbc:mysql://localhost:3306/數(shù)據(jù)庫名 ? SSL=true";
3坞古、通過DriverManager獲取到連接對象
Connection conn = DriverManager.getConnection(url,"root","password");
4、關(guān)閉數(shù)據(jù)庫連接釋放資源
conn.close();