黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java數(shù)據(jù)庫(kù)編程實(shí)例教程總結(jié)

Java數(shù)據(jù)庫(kù)編程實(shí)例教程總結(jié)

更新時(shí)間:2020-02-17 10:06:34 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2914次


Java數(shù)據(jù)庫(kù)編程實(shí)例教程總結(jié)


  一.?dāng)?shù)據(jù)庫(kù)的設(shè)計(jì)


  1. 規(guī)范設(shè)計(jì)數(shù)據(jù)庫(kù)的步驟:


  收集信息、標(biāo)識(shí)實(shí)體、標(biāo)識(shí)實(shí)體屬性、標(biāo)識(shí)實(shí)體之間的關(guān)系


  2. E-R圖:實(shí)體——關(guān)系圖(Entity-Relationship),用來(lái)表示實(shí)體的組成部分和實(shí)體之間的關(guān)系。


  矩形名詞代表實(shí)體,橢圓名詞代表屬性,菱形動(dòng)詞表示關(guān)系


  3. 數(shù)據(jù)庫(kù)模型圖UML:數(shù)據(jù)庫(kù)模型圖是在詳細(xì)設(shè)計(jì)步驟時(shí)繪制的清晰表示各個(gè)實(shí)體(數(shù)據(jù)表),各個(gè)字段(列),標(biāo)識(shí)了主外鍵關(guān)系的一個(gè)模型圖,作用是更直觀的展現(xiàn)數(shù)據(jù)庫(kù)各個(gè)實(shí)體以及實(shí)體之間的關(guān)系。


  4. 映射基數(shù):映射基數(shù)指的是各個(gè)數(shù)據(jù)實(shí)體之間的關(guān)聯(lián)關(guān)系,常見映射基數(shù)有以下幾種:


  一對(duì)一1:1    一對(duì)多1:N


  多對(duì)一N:1    多對(duì)多M:N


  5. 三大范式:三大范式(3NF)是規(guī)范設(shè)計(jì)數(shù)據(jù)庫(kù)必須遵循的標(biāo)準(zhǔn),是設(shè)計(jì)數(shù)據(jù)庫(kù)的規(guī)范,其中三個(gè)范式的具體含義如下:


  第一范式(1NF):確保每列的原子性(每列都是不可再分的最小數(shù)據(jù)單元)


  第二范式(2NF):確保每列都和主鍵相關(guān)(每個(gè)表只描述一件事情)


  第三范式(3NF):每列都和主鍵直接相關(guān),不能間接相關(guān)(除主鍵列以外的其他列不傳遞依賴于主鍵列)


  6. 三大范式對(duì)性能的影響:有時(shí)為了方便檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù),會(huì)在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)適當(dāng)添加冗余字段,以空間換取時(shí)間。其次,在嚴(yán)格遵循使用三大范式設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí)會(huì)對(duì)數(shù)據(jù)庫(kù)的性能產(chǎn)生影響。因此實(shí)際設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),既需要考慮三大范式,也需要考慮數(shù)據(jù)庫(kù)的系統(tǒng)性能。


  二.初識(shí)MySQL


  1. MySQL是Oracle公司旗下的又一強(qiáng)大的關(guān)系型數(shù)據(jù)庫(kù),目前由企業(yè)版和社區(qū)版兩種版本供用戶下載使用。


  2. 安裝MySQL需要遵循的步驟:


  ①官網(wǎng)下載MySQL,啟動(dòng)安裝程序


  ②設(shè)置默認(rèn)端口號(hào),默認(rèn)為3306,設(shè)置MySQL服務(wù)名,默認(rèn)服務(wù)名為MySQL


  ③設(shè)置數(shù)據(jù)庫(kù)默認(rèn)字符集,默認(rèn)選中l(wèi)atin1(ISO-8859-1),建議設(shè)置為utf8,對(duì)中文兼容性更好


  ④勾選安裝時(shí)自動(dòng)配置環(huán)境變量,也可在安裝后手動(dòng)像配置jdk一樣配置MySQL環(huán)境變量


  ⑤選擇安裝路徑,完成安裝。


  3. 啟動(dòng)MySQL常用DOS命令


  ①啟動(dòng)MySQL服務(wù)


  netstartmysql;


  ②關(guān)閉MySQL服務(wù)


  netstopmysql;


  ③登錄MySQL服務(wù)器


  mysql-uroot-p密碼;


  mysql-uroot-p;


  Enterpassword:輸入密碼


  ④退出MySQL服務(wù)器:


  exit;


  ⑤查看系統(tǒng)幫助


  HELP指令


  4. 回顧SQL語(yǔ)言(StructQueryLanguage)結(jié)構(gòu)化查詢語(yǔ)言


  SQL語(yǔ)言組成:


  DDL數(shù)據(jù)定義語(yǔ)言,定義數(shù)據(jù)庫(kù)、表、約束


  DML數(shù)據(jù)操作語(yǔ)言:數(shù)據(jù)增刪改


  DQL數(shù)據(jù)查詢語(yǔ)言:數(shù)據(jù)查詢


  DCL數(shù)據(jù)控制語(yǔ)言:權(quán)限的管理和回收等


  TCL事務(wù)控制語(yǔ)言:事務(wù)的處理(此處僅作了解)

   

  ①DDL數(shù)據(jù)定義語(yǔ)言:


  創(chuàng)建數(shù)據(jù)庫(kù):


  DROPDATABASEIFEXISTS數(shù)據(jù)庫(kù)名


  CREATEDATABASE數(shù)據(jù)庫(kù)名


  創(chuàng)建數(shù)據(jù)庫(kù)表:


  DROPTABLEIFEXISTS數(shù)據(jù)表名


  CREATETABLE表名


  (


  列名 數(shù)據(jù)類型 列的特征(null/notnull),約束等


  )


  添加約束:


  ALTERTABLE表名ADDCONSTRAINT約束名 約束類型 約束內(nèi)容


  修改表結(jié)構(gòu):


  ALTERTABLE表名RENAME新表名(修改表名稱)


  ALTERTABLE表名ADD列名數(shù)據(jù)類型列的特征(添加列)


  ALTERTABLE表名CHANGE原列名新列名數(shù)據(jù)類型列的特征(修改列名和列的特征)


  ALTERTABLE表名DROPCOLUMN列名(刪除列)


  DML數(shù)據(jù)操作語(yǔ)言:


  插入數(shù)據(jù):


  ①一次插入一條記錄


  INSERTINTO表名(列名)VALUES(值)


  ②一次插入多條記錄


  插入已存在表中:


  INSERTINTO表名(列名)VALUES(值),(值),(值)....


  插入新表中:自動(dòng)創(chuàng)建新表


  CREATETABLE表名(SELECT語(yǔ)句)


  修改數(shù)據(jù)


  UPDATE表名SET列名=值WHERE更新條件


  刪除數(shù)據(jù)


  DELETEFROM表名WHERE刪除條件


  清空表中數(shù)據(jù)


  TRUNCATETABLE表名


  DELETEFROM表名


  DQL數(shù)據(jù)查詢語(yǔ)言:


  SELECT列名FROM表名


  WHERE查詢條件


  GROUPBY分組


  HAVING分組篩選


  ORDERBY排序(ASC升序,默認(rèn)值/DESC降序)


  LIMIT行偏移量,行數(shù)


  DCL數(shù)據(jù)控制語(yǔ)言


  創(chuàng)建用戶:


  CREATEUSER用戶名


  IDENTIFIEDBY密碼


  創(chuàng)建用戶并授權(quán):


  GRANT權(quán)限ON數(shù)據(jù)庫(kù)名.表名


  TO用戶名@`localhost`


  IDENTIFIEDBY密碼


  修改用戶密碼:


  DOS命令:mysqladmin-u用戶名-ppassword新密碼


  SQL命令:


  SETPASSWORDFOR用戶名@`localhost`=PASSWORD(新密碼)


  刪除用戶:


  DROPUSER用戶名1@`localhost`,用戶名2@主機(jī)名


  查看所有用戶:


  USEmysql;


  SELECT*FROM`user`;


  拓展SHOW語(yǔ)句


  ①查看所有數(shù)據(jù)庫(kù)


  SHOWDATABASES;


  ②查看當(dāng)前數(shù)據(jù)庫(kù)的所有數(shù)據(jù)庫(kù)表


  USE數(shù)據(jù)庫(kù)名;


  SHOWTABLES;


  ③查看默認(rèn)字符集


  SHOWVARIABLESLIKE‘character_set_%’


  ④查看表結(jié)構(gòu)


  DESCRIBE表名


  DESC表名


  ⑤查看導(dǎo)出文件路徑


  SHOWVARIABLESLIKE‘secure%’


  三.子查詢


  SELECT列名FROM表名


  WHERE列名=(子查詢)


  注意:以上語(yǔ)句中的子查詢只能返回唯一結(jié)果(因?yàn)槭褂玫氖顷P(guān)系運(yùn)算符,關(guān)系運(yùn)算符左右兩邊的值只能返回唯一結(jié)果),如果返回多條記錄,將引發(fā)querymorethan1row異常


  IN/NOTIN子查詢


  SELECT列名FROM表名


  WHERE列名IN(子查詢語(yǔ)句)/NOTIN(子查詢語(yǔ)句)


  IN子查詢作用:判斷某列的值是否存在于某個(gè)范圍內(nèi),類似于OR運(yùn)算符的作用,IN后面子查詢查詢出的結(jié)果作為列舉值并逐個(gè)與IN前面的列值判斷,如果IN前面的列值為其中之一,則返回true,都不匹配返回false


  NOTIN運(yùn)算符作用:進(jìn)行IN子查詢的取反操作,及如果如果IN前面的列值為子查詢查詢出的結(jié)果的其中之一,則返回false,都不匹配返回true


  EXISTS/NOTEXISTS子查詢


  SELECT列名FROM表名


  WHEREEXISTS(子查詢)/NOTEXISTS(子查詢)


  EXISTS作用:判斷某列的值是否存在于子查詢語(yǔ)句查詢的結(jié)果中,僅判斷是否存在。如果存在返回true,不存在返回false


  NOTEXISTS作用:作用同上,但是是對(duì)EXISTS的結(jié)果進(jìn)行取反操作。即不存在返回true,存在返回false


  四:MySQL常用函數(shù)


  字符串函數(shù):


  CONCAT()拼接


  UPPER()轉(zhuǎn)換為大寫


  LOWER()轉(zhuǎn)換為小寫


  SUBSTRING()截取字符串


  日期函數(shù):


  NOW()當(dāng)前系統(tǒng)日期和事件


  CURDATE()當(dāng)前系統(tǒng)日期


  CURTIME()當(dāng)期系統(tǒng)時(shí)間


  DATEDIFF()日期差


  數(shù)學(xué)函數(shù):


  CEIL()向上取整


  FLOOR()向下取整


  ROUND()四舍五入


  RAND()返回0-1之間的隨機(jī)數(shù)


  五.事務(wù)、視圖、索引、備份和恢復(fù)、數(shù)據(jù)導(dǎo)入和導(dǎo)出


  事務(wù):事務(wù)是一個(gè)整體,必須同時(shí)執(zhí)行,要么成功,要么失敗,從而保證數(shù)據(jù)庫(kù)中數(shù)據(jù)狀態(tài)一致。


  事務(wù)的特性(ACID):


  原子性:事務(wù)是不可再分的最小邏輯工作單元,必須同時(shí)執(zhí)行,要么全部執(zhí)行,要么都不執(zhí)行。


  一致性:事務(wù)在開始前和提交回滾后,數(shù)據(jù)庫(kù)中的數(shù)據(jù)保持一致狀態(tài)。


  隔離性:事務(wù)和事務(wù)之間相互獨(dú)立,互不干涉。


  持久性:事務(wù)成功提交或回滾后,對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)造成的影響是持久的。


  語(yǔ)法:


  開啟事務(wù)


  BEGIN;


  STARTTRANSACTION;


  提交事務(wù)


  COMMIT;


  回滾事務(wù)


  ROLLBACK;


  視圖:視圖可以理解為虛擬表,是表數(shù)據(jù)的引用。視圖可以互相嵌套,主要用來(lái)做查詢,可以增刪改數(shù)據(jù),將會(huì)同步引用的表的數(shù)據(jù)。


  創(chuàng)建視圖:


  CREATEVIEW視圖名


  刪除視圖


  DROPVIEW視圖名


  查看視圖


  SELECT*FROMview_name


  索引:索引用來(lái)提高數(shù)據(jù)檢索速度,提高數(shù)據(jù)查詢的性能。


  索引類型:普通索引、主鍵索引、全文索引、空間索引、唯一索引、組合索引。


  創(chuàng)建索引


  CREATE(UNIQUE/FULLTEXT/SPATIAL)INDEXindex_name


  ONtable_name(column_name)


  刪除索引


  DROPINDEXindex_nameFROMtable_name


  查看索引


  SHOWINDEXFROMtable_name


  備份和恢復(fù):


  備份數(shù)據(jù)庫(kù)


  DOS命令:mysqldump-uroot-p密碼數(shù)據(jù)庫(kù)名>文件名


  恢復(fù)數(shù)據(jù)庫(kù)


  DOS命令:mysql-uroot-p密碼數(shù)據(jù)庫(kù)名<文件名


  SQL命令:


  USE數(shù)據(jù)庫(kù)名;


  SOURCE數(shù)據(jù)庫(kù)備份文件名


  導(dǎo)出數(shù)據(jù):


  SELECT...INTOOUTFILE文件名


  導(dǎo)入數(shù)據(jù):


  LOADDATAINFILE文件名INTOTABLE表名


  六.JDBC


  1.JDBC:Java連接數(shù)據(jù)庫(kù)技術(shù),全程JavaDataBaseConnectivity


  2.JDBCAPI:使用JDBC常用接口訪問(wèn)和操作數(shù)據(jù)庫(kù)


  3.使用JDBC訪問(wèn)和操作數(shù)據(jù)庫(kù)步驟(純Java方式)


  首先在項(xiàng)目中BuildPathMySQL數(shù)據(jù)庫(kù)JAR包


  ①加載驅(qū)動(dòng)Class.forName(“com.mysql.jdbc.Driver”);


  ②獲取鏈接


  Connectionconn=DriverManager.getConnection(“jdbc:mysql://localhost:3306/數(shù)據(jù)庫(kù)名”,”root”,”root”);


  參數(shù):連接字符串、用戶名、密碼


  ③獲取Statement或PreparedStatement接口實(shí)例


  Statementstmt=conn.createStatement();


  PreparedStatementpstmt=conn.preparedStatement(sql語(yǔ)句);


  ④編寫SQL語(yǔ)句


  ⑤調(diào)用Statement或PreparedStatement接口方法執(zhí)行數(shù)據(jù)庫(kù)操作


  booleanexecute()查詢SQL返回true,其他SQL返回false


  IntexecuteUpdate()執(zhí)行增刪改,返回受影響的行數(shù)Int類型


  ResultSetexecuteQuery()執(zhí)行查詢,返回查詢結(jié)果集ResultSet對(duì)象


  ⑥處理查詢結(jié)果


  resultSet.next()前進(jìn)到下一行記錄中,讀到記錄返回true,沒(méi)有讀到記錄返回false


  getXX()獲取每行記錄中每列的值


  ⑦關(guān)閉連接,釋放資源


  先關(guān)閉ResultSet,在關(guān)閉Statement或PreparedStatement,最后關(guān)閉Connection,注意checked異常處理。


  七.DAO模式


  數(shù)據(jù)持久化:數(shù)據(jù)持久化就是將程序中的數(shù)據(jù)在瞬時(shí)狀態(tài)和持久狀態(tài)之間相互轉(zhuǎn)換的機(jī)制。


  DAO層:數(shù)據(jù)訪問(wèn)層,負(fù)責(zé)實(shí)現(xiàn)數(shù)據(jù)持久化,對(duì)數(shù)據(jù)庫(kù)數(shù)據(jù)的增刪改查,降低代碼耦合度,提高內(nèi)聚性。


  DAO模式組成:


  DAO接口、DAO接口實(shí)現(xiàn)類、Entity實(shí)體類,BaseDao數(shù)據(jù)庫(kù)鏈接和關(guān)閉工具類


  Properties類:負(fù)責(zé)讀取數(shù)據(jù)庫(kù)配置文件中的驅(qū)動(dòng)、連接字符串、用戶名、密碼等數(shù)據(jù)庫(kù)參數(shù)信息


  讀取步驟:


  ①創(chuàng)建Properties類的實(shí)例


  Propertiesproperties=newProperties();


  ②將配置文件讀入InputStream流


  InputStreaminputStream=BaseDao.class.getClassLoader().getResourceAsStream(“配置文件名”);


  ③調(diào)用Properties類實(shí)例的load()方法讀取流


  Properties.load(inputStream);//.注意處理checked異常


  ④調(diào)用Properties類的實(shí)例的getProperty(Stringkey)方法根據(jù)配置文件中的key映射獲取到相應(yīng)的value值


  Stringdriver=properties.getProperty(“driver”);


  ....


  實(shí)體類標(biāo)準(zhǔn)定義:


  ①類名public


  ②屬性private


  ③屬性名和映射表的字段名盡量保持一致,采用駝峰命名法。


  ④提供公有的getter/setter方法封裝屬性


  ⑤最好實(shí)現(xiàn)java.io.Serializable接口,支持序列化機(jī)制。


  數(shù)據(jù)庫(kù)相關(guān)視頻教程


  oracle數(shù)據(jù)庫(kù)教程:http://m.ilovecolors.com.cn/v22/


  數(shù)據(jù)庫(kù)plsql教程:http://m.ilovecolors.com.cn/v23/


  jdbc數(shù)據(jù)庫(kù)教程:http://m.ilovecolors.com.cn/v24/


  數(shù)據(jù)庫(kù)mysql教程:http://m.ilovecolors.com.cn/v21


  Java實(shí)戰(zhàn)項(xiàng)目視頻之egov項(xiàng)目視頻教程【免費(fèi)下載】:http://m.ilovecolors.com.cn/v83/


  Java學(xué)生成績(jī)管理系統(tǒng)視頻教程【免費(fèi)下載】:http://m.ilovecolors.com.cn/v51/


Java數(shù)據(jù)庫(kù)編程實(shí)例教程總結(jié)


       以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java數(shù)據(jù)庫(kù)編程實(shí)例教程總結(jié)”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 成人欧美精品一区二区不卡 | 午夜影院免费视频 | 国产女人成人精品视频 | 在线一区三区四区产品动漫 | h视频免费观看 | 久久精品国产欧美成人 | 香蕉视频最新版 | 欧美成人午夜精品一区二区 | 欧美色图偷窥自拍 | 亚洲成人福利在线 | 日本综合在线 | 美女很黄很黄 | 人人干夜夜操 | 最近免费中文字幕视频高清在线看 | 欧美日韩免费在线 | 日批免费看 | 日本a在线天堂 | 久久成人免费大片 | 日干夜干天天干 | 欧美日韩中文字幕在线 | 永久免费在线播放 | 日韩福利片 | 国久久 | 亚洲一区精品视频在线 | 超级碰在线 | 相泽亚洲一区中文字幕 | 国产精品日韩欧美在线第3页 | 美国一级片在线观看 | 一级片按摩 | 国产91精品久久久久999 | 国产一级久久久久久毛片 | 欧美日韩午夜视频 | 5x性区m免费毛片视频看看 | 欧美一区二区三区不卡免费 | 黄色国产一级片 | 欧美综合影院 | 欧美亚洲国产精品 | 欧美日韩视频在线成人 | 青草视频在线观看免费网站 | 日本三级免费看 | 成人免费视频视频在线不卡 |