在java中把數(shù)據(jù)庫查詢的結(jié)果保存到map中:

成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)的關(guān)注點不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)公司一個展示的機會來證明自己,這并不會花費您太多時間,或許會給您帶來新的靈感和驚喜。面向用戶友好,注重用戶體驗,一切以用戶為中心。
實現(xiàn):獲得ResultSet rs 時可以轉(zhuǎn)化為ResultSetMetaData對象。
ResultSetMetaData可用于獲取關(guān)于 ResultSet 對象中列的類型和屬性信息的對象。
舉例說明如下:
//獲得ResultSetMetaData對象
ResultSetMetaData rsmd=rs.getMetaData();
//獲得返回此 ResultSet 對象中的列數(shù)
int count = rsmd.getColumnCount();
while(rs.next()){
Map map=new HashMap();
for(int i=1;icount;i++){
//獲取指定列的表目錄名稱
String label=rsmd.getColumnLabel(i);
//以 Java 編程語言中 Object 的形式獲取此 ResultSet 對象的當(dāng)前行中指定列的值
Object object= rs.getObject(i);
//把數(shù)據(jù)庫中的字段名和值對應(yīng)為一個map對象中的一個鍵值對
map.put(label.toLowerCase(), object);
}
把每條對象封裝成的map對象放進list中
list.add(map);
}
就此就可以把任意resultet通過這個方法生成list對象。
對于mysql5.5.54服務(wù)的結(jié)構(gòu)已經(jīng)失敗。
解決方法如下:
1、打開任務(wù)欄管理器——服務(wù)找到MYSQL,雙擊它。
2、在彈出的對話框里面有四個選項:常規(guī),登錄,恢復(fù),依賴關(guān)系。
3、選擇登錄:下面登錄身份里有兩個單選項,一個是是本地系統(tǒng)帳戶,另一個是此帳戶。
4、此時默認(rèn)的選擇是2此帳戶,且?guī)в忻艽a。
你需要做的就是選擇本地系統(tǒng)帳戶,然后單擊應(yīng)用,然后啟動服務(wù)。
.查看服務(wù)中有沒有mysql,如果有將該服務(wù)停掉。
2.在控制面板中運行添加刪除程序,將mysql卸載。
3.卸載后打開注冊表(在開始—運行,輸入regedit),
查看HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices 下的鍵值,如果有相關(guān)mysql鍵值(mysql、mysqladmin)則刪掉,即可。
4.重啟,將mysql的安裝殘余目錄刪掉 (查看服務(wù),此時服務(wù)中已沒有mysql)。
5.重新安裝mysql.安裝后先不要運行Server Instance Configuration wizard,重啟后在開始菜單中運行該向?qū)В纯伞?/p>
**困難3:**msyql安裝到最后一步start service錯誤
1.到控制面板里面先把mysql刪除。
2.到c盤C:Program Files目錄下把mysql目錄刪除。
3.如果在其他盤還有設(shè)置目錄也要刪除.空目錄也要刪除。
4.到regedit把注冊表:
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Applications/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Applications/MySQL
有的話,全部刪除!(**技巧:**用F3循環(huán)查找“mysql”)5.如果任務(wù)管理器里有關(guān)mysql內(nèi)容也刪除。
5.把防火墻關(guān)了。
6.重新裝mysql(這里我沒有重啟計算機)。
重裝時候有必要的話,重啟計算機,停用IIS,和刪除temp里的臨時文件。
實在不行的話,配置mysql時候,把mysql服務(wù)換個服務(wù)名。
以上就是在安裝mysql時經(jīng)常遇到的錯誤,希望本文對大家的學(xué)習(xí)有所幫助。
文章來源:
Mysql安裝注意事項、安裝失敗的五個原因分析
錯誤1:wizard安裝最后一頁,出現(xiàn)cannot create Windows service for mysql.error:0 錯誤
解決方法:打開命令行 輸入 sc delete mysql 命令即
C:sc delete mysql
[SC] DeleteService SUCCESS
重起電腦,或者卸載后重啟再安裝,這樣就好了。我是卸載后重啟的。
卸載重新安裝要注意一個問題,在控制面板中卸載后,要去c:Documents and SettingsAll UsersApplication Data目錄下把Mysql文件夾刪掉。里面可能記載了你卸載的配置信息,下次安裝時會有影響。
錯誤2:在讓輸入管理員輸入密碼時除了password和confirm password之外還有一行current password。
這說明你安裝之前沒有把我第1條中說的目錄下把Mysql文件夾刪除。不知道是否影響后續(xù)使用,可能記得密碼的話沒關(guān)系。另附帶一句,管理員密碼是自己設(shè)的,用戶名則為默認(rèn)root。
安裝成功后可測試如下:打開mysql command line client,輸入密碼,出現(xiàn)
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.1.33-community MySQL Community Server (GPL)
Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.
mysql
則安裝成功!
錯誤3:mysql server configuration失敗。
在配置向?qū)е胁榭村e誤提示有如下語句:
mysql-server-5.5-win32:60 - Adding firewall rule for MySQL55 on port 3306.
mysql-server-5.5-win32:66 - Adding firewall rule failed.
表示防火墻安裝失敗。
查看安裝日志能找到以下語句:
mysql-installer Information: 10 : Attempting to create firewall rule with command: netsh.exe firewall add portopening protocol=TCP port=3306 profile=ALL name=MySQL55 mode=ENABLE scope=ALL
mysql-installer Information: 10 : Unexpected response from netsh: 確定。
mysql-installer Information: 10 : Attempting to create firewall rule with command: netsh.exe advfirewall firewall add rule name=”Port 3306” protocol=TCP localport=3306 dir=in action=allow
mysql-installer Information: 10 : Unexpected response from netsh: 下列命令沒有找到: advfirewall firewall add rule name=”Port 3306” protocol=TCP localport=3306 dir=in action=allow。
這種情況說明mysql的安裝對中文系統(tǒng)支持得不好,不能識別 netsh.exe返回的“確定”信息,繼而運行能在其他windows平臺上運行的netsh.exe advfirewall命令(該命令xp不支持,所以報找不到該命令的錯誤。
解決辦法有兩個:
①將自己的操作系統(tǒng)的語言設(shè)置為英文,然后重新安裝mysql 。具體的可以進入控制面板-區(qū)域和語言 中去更改;另外,檢查當(dāng)前用戶是否有啟動防火墻的權(quán)限,在計算機服務(wù)中查看Application Layer Gateway Service的屬性,查看登錄選項卡中的用戶是否是當(dāng)前用戶。
②檢查防火墻端口,如果已經(jīng)添加成功了,則不作處理,如果沒有成功添加,則自己手動在防火墻中添加端口。
錯誤4:安裝成功之后,只能通過mysql 5.5 command line client 連接localhost的mysql server,而不能通過workbench或其他客戶端工具進行遠(yuǎn)程連接mysql server。
關(guān)鍵字:不能遠(yuǎn)程連接mysql server。
可能原因:
①沒有開端口,參見前一條解決。
②用戶沒有授權(quán)遠(yuǎn)程連接3306。
③mysql server不允許遠(yuǎn)程連接。
對于②用戶沒有授權(quán)遠(yuǎn)程連接,可以給用戶授權(quán),例如默認(rèn)的root用戶,可以在mysql 5.5 command line client 中輸入如下命令:
//選擇數(shù)據(jù)庫
mysqluse mysql;
//給用戶授權(quán),yourpassword字段用你的密碼代替
mysqlgrant all priileges on *.* to identified by ‘yourpassword’;
//刷新系統(tǒng)權(quán)限表
mysqlflush privileges;
//查看是否授權(quán)成功
mysql show grants for roots;
如果出現(xiàn)剛剛的授權(quán),則表示成功。不成功的話,自己再添加一個新用戶試試,添加用戶的命令:
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values(“%”,“newuser”,password(“newpassword”),‘’,‘’,‘’)
對于③mysql server不允許遠(yuǎn)程連接的解決辦法是,找到自己的my.ini,在[mysqld]下增加一行語句:
bind-address=0.0.0.0
表示不綁定IP,重啟你的Mysql服務(wù)。
錯誤5:配置文件my.ini的位置
MySQL配置向?qū)y.ini文件放置在MySQL服務(wù)器的安裝目錄中。這將有助于將配置文件和具體的服務(wù)器實例相 關(guān)聯(lián)。為了保證MySQL服務(wù)器知道到哪里查找my.ini文件,和下面內(nèi)容類似的參數(shù)將會被作為服務(wù)安裝的一部分 傳遞給MySQL服務(wù)器:–defaults-file="C:Program FilesMySQLMySQL Server 5.5my.ini C:Program FilesMySQLMySQL Server 5.5可以被指向MySQL服務(wù)器的安裝路徑所代替。
編輯my.ini文:可以使用文本編輯器打開該文件同時做出必要的編輯和修改。你也可以以MySQL Administrator的應(yīng)用程序來修 改服務(wù)器配置。 MySQL客戶端和應(yīng)用程序,例如mysql命令行客戶端和mysqldump并不能確定位于服務(wù)器安裝目錄中的my.ini文件 的位置。為了配置客戶端和應(yīng)用程序,根據(jù)你的Windows版本的不同,在C:Windows下或者在C:WINNT目錄下生 成新的文件my.ini 文件
如果你的MySQL配置向?qū)Оl(fā)現(xiàn)了一個已經(jīng)存在的my.ini文件,你可以重新配置已經(jīng)存在的服務(wù)器,或者通過刪除 my.ini文件、停止并移除MySQL服務(wù)的方法移除服務(wù)器實例。重新配置已經(jīng)存在的服務(wù)器,選擇“重新配置實例”選項并且選擇“下一步”按鈕。已經(jīng)存在的my.ini文件被 重新命名為mytimestamp.ini.bak,時間戳是已經(jīng)存在的my.ini創(chuàng)建時的日期和時間。移除已經(jīng)存在的數(shù)據(jù)庫實 例,選擇“移除實例”選項并選擇“下一步”按鈕。如果選擇了“移除實例”選項,進入到確認(rèn)界面。單擊“運行”按鈕:MySQL配置向?qū)V共㈤_始移除MySQL服 務(wù),并刪除my.ini文件。但服務(wù)器安裝目錄并沒有移除。如果選擇了“重新配置實例”選項,進入到“配置類型”界面,可以選擇安裝想要配置的安裝類型。
你寫依賴的時候不是能自己設(shè)置版本version嗎 依賴找不著對應(yīng)就會自己下載 有change 。。。點擊就好了。然后下載不了,你就去官網(wǎng)別的地方下載一個,然后copy移到你的倉庫,這樣就會自動導(dǎo)入了
我用的數(shù)據(jù)庫也是5.5版本,下面是我用的依賴:
!-- 數(shù)據(jù)庫驅(qū)動依賴 --
dependency
groupIdmysql/groupId
artifactIdmysql-connector-java/artifactId
version5.1.37/version
/dependency
!-- 數(shù)據(jù)連接池依賴 這個看你自己選了還有c3p0 阿里的druid 等等--
dependency
groupIdorg.apache.commons/groupId
artifactIdcommons-dbcp2/artifactId
version2.1.1/version
/dependency
!--注:若用spring 還要有一個spring-jdbc的依賴 --
dependency
groupIdorg.springframework/groupId
artifactIdspring-jdbc/artifactId
version4.3.7.RELEASE/version
/dependency
有用的話,點個贊吧(●'?'●)
只要字段值還可以繼續(xù)拆分,就不滿足第一范式。
范式設(shè)計得越詳細(xì),對某些實際操作可能會更好,但并非都有好處,需要對項目的實際情況進行設(shè)定。
在滿足第一范式的前提下,其他列都必須完全依賴于主鍵列。 如果出現(xiàn)不完全依賴,只可能發(fā)生在聯(lián)合主鍵的情況下:
實際上,在這張訂單表中,product_name 只依賴于 product_id ,customer_name 只依賴于 customer_id。也就是說,product_name 和 customer_id 是沒用關(guān)系的,customer_name 和 product_id 也是沒有關(guān)系的。
這就不滿足第二范式:其他列都必須完全依賴于主鍵列!
拆分之后,myorder 表中的 product_id 和 customer_id 完全依賴于 order_id 主鍵,而 product 和 customer 表中的其他字段又完全依賴于主鍵。滿足了第二范式的設(shè)計!
在滿足第二范式的前提下,除了主鍵列之外,其他列之間不能有傳遞依賴關(guān)系。
表中的 customer_phone 有可能依賴于 order_id 、 customer_id 兩列,也就不滿足了第三范式的設(shè)計:其他列之間不能有傳遞依賴關(guān)系。
修改后就不存在其他列之間的傳遞依賴關(guān)系,其他列都只依賴于主鍵列,滿足了第三范式的設(shè)計!
查詢每門課的平均成績。
查詢 score 表中至少有 2 名學(xué)生選修,并以 3 開頭的課程的平均分?jǐn)?shù)。
分析表發(fā)現(xiàn),至少有 2 名學(xué)生選修的課程是 3-105 、3-245 、6-166 ,以 3 開頭的課程是 3-105 、3-245。也就是說,我們要查詢所有 3-105 和 3-245 的 degree 平均分。
查詢所有學(xué)生的 name,以及該學(xué)生在 score 表中對應(yīng)的 c_no 和 degree 。
通過分析可以發(fā)現(xiàn),只要把 score 表中的 s_no 字段值替換成 student 表中對應(yīng)的 name 字段值就可以了,如何做呢?
查詢所有學(xué)生的 no 、課程名稱 ( course 表中的 name ) 和成績 ( score 表中的 degree ) 列。
只有 score 關(guān)聯(lián)學(xué)生的 no ,因此只要查詢 score 表,就能找出所有和學(xué)生相關(guān)的 no 和 degree :
然后查詢 course 表:
只要把 score 表中的 c_no 替換成 course 表中對應(yīng)的 name 字段值就可以了。
查詢所有學(xué)生的 name 、課程名 ( course 表中的 name ) 和 degree 。
只有 score 表中關(guān)聯(lián)學(xué)生的學(xué)號和課堂號,我們只要圍繞著 score 這張表查詢就好了。
只要把 s_no 和 c_no 替換成 student 和 srouse 表中對應(yīng)的 name 字段值就好了。
首先把 s_no 替換成 student 表中的 name 字段:
再把 c_no 替換成 course 表中的 name 字段:
查詢 95031 班學(xué)生每門課程的平均成績。
在 score 表中根據(jù) student 表的學(xué)生編號篩選出學(xué)生的課堂號和成績:
這時只要將 c_no 分組一下就能得出 95031 班學(xué)生每門課的平均成績:
查詢在 3-105 課程中,所有成績高于 109 號同學(xué)的記錄。
首先篩選出課堂號為 3-105 ,在找出所有成績高于 109 號同學(xué)的的行。
查詢所有成績高于 109 號同學(xué)的 3-105 課程成績記錄。
查詢所有和 101 、108 號學(xué)生同年出生的 no 、name 、birthday 列。
查詢 '張旭' 教師任課的學(xué)生成績表。
首先找到教師編號:
通過 sourse 表找到該教師課程號:
通過篩選出的課程號查詢成績表:
查詢某選修課程多于5個同學(xué)的教師姓名。
首先在 teacher 表中,根據(jù) no 字段來判斷該教師的同一門課程是否有至少5名學(xué)員選修:
查看和教師編號有有關(guān)的表的信息:
我們已經(jīng)找到和教師編號有關(guān)的字段就在 course 表中,但是還無法知道哪門課程至少有5名學(xué)生選修,所以還需要根據(jù) score 表來查詢:
根據(jù)篩選出來的課程號,找出在某課程中,擁有至少5名學(xué)員的教師編號:
在 teacher 表中,根據(jù)篩選出來的教師編號找到教師姓名:
查詢 “計算機系” 課程的成績表。
思路是,先找出 course 表中所有 計算機系 課程的編號,然后根據(jù)這個編號查詢 score 表。
查詢 計算機系 與 電子工程系 中的不同職稱的教師。
查詢課程 3-105 且成績 至少 高于 3-245 的 score 表。
查詢課程 3-105 且成績高于 3-245 的 score 表。
查詢某課程成績比該課程平均成績低的 score 表。
查詢所有任課 ( 在 course 表里有課程 ) 教師的 name 和 department 。
查詢 student 表中至少有 2 名男生的 class 。
查詢 student 表中不姓 "王" 的同學(xué)記錄。
查詢 student 表中每個學(xué)生的姓名和年齡。
查詢 student 表中最大和最小的 birthday 值。
以 class 和 birthday 從大到小的順序查詢 student 表。
查詢 "男" 教師及其所上的課程。
查詢最高分同學(xué)的 score 表。
查詢和 "李軍" 同性別的所有同學(xué) name 。
查詢和 "李軍" 同性別且同班的同學(xué) name 。
查詢所有選修 "計算機導(dǎo)論" 課程的 "男" 同學(xué)成績表。
需要的 "計算機導(dǎo)論" 和性別為 "男" 的編號可以在 course 和 student 表中找到。
建立一個 grade 表代表學(xué)生的成績等級,并插入數(shù)據(jù):
查詢所有學(xué)生的 s_no 、c_no 和 grade 列。
思路是,使用區(qū)間 ( BETWEEN ) 查詢,判斷學(xué)生的成績 ( degree ) 在 grade 表的 low 和 upp 之間。
準(zhǔn)備用于測試連接查詢的數(shù)據(jù):
分析兩張表發(fā)現(xiàn),person 表并沒有為 cardId 字段設(shè)置一個在 card 表中對應(yīng)的 id 外鍵。如果設(shè)置了的話,person 中 cardId 字段值為 6 的行就插不進去,因為該 cardId 值在 card 表中并沒有。
要查詢這兩張表中有關(guān)系的數(shù)據(jù),可以使用 INNER JOIN ( 內(nèi)連接 ) 將它們連接在一起。
完整顯示左邊的表 ( person ) ,右邊的表如果符合條件就顯示,不符合則補 NULL 。
完整顯示右邊的表 ( card ) ,左邊的表如果符合條件就顯示,不符合則補 NULL 。
完整顯示兩張表的全部數(shù)據(jù)。
在 MySQL 中,事務(wù)其實是一個最小的不可分割的工作單元。事務(wù)能夠 保證一個業(yè)務(wù)的完整性 。
比如我們的銀行轉(zhuǎn)賬:
在實際項目中,假設(shè)只有一條 SQL 語句執(zhí)行成功,而另外一條執(zhí)行失敗了,就會出現(xiàn)數(shù)據(jù)前后不一致。
因此,在執(zhí)行多條有關(guān)聯(lián) SQL 語句時, 事務(wù) 可能會要求這些 SQL 語句要么同時執(zhí)行成功,要么就都執(zhí)行失敗。
在 MySQL 中,事務(wù)的 自動提交 狀態(tài)默認(rèn)是開啟的。
自動提交的作用 :當(dāng)我們執(zhí)行一條 SQL 語句的時候,其產(chǎn)生的效果就會立即體現(xiàn)出來,且不能 回滾 。
什么是回滾?舉個例子:
可以看到,在執(zhí)行插入語句后數(shù)據(jù)立刻生效,原因是 MySQL 中的事務(wù)自動將它 提交 到了數(shù)據(jù)庫中。那么所謂 回滾 的意思就是,撤銷執(zhí)行過的所有 SQL 語句,使其回滾到 最后一次提交 數(shù)據(jù)時的狀態(tài)。
在 MySQL 中使用 ROLLBACK 執(zhí)行回滾:
由于所有執(zhí)行過的 SQL 語句都已經(jīng)被提交過了,所以數(shù)據(jù)并沒有發(fā)生回滾。那如何讓數(shù)據(jù)可以發(fā)生回滾?
將自動提交關(guān)閉后,測試數(shù)據(jù)回滾:
那如何將虛擬的數(shù)據(jù)真正提交到數(shù)據(jù)庫中?使用 COMMIT :
事務(wù)的實際應(yīng)用 ,讓我們再回到銀行轉(zhuǎn)賬項目:
這時假設(shè)在轉(zhuǎn)賬時發(fā)生了意外,就可以使用 ROLLBACK 回滾到最后一次提交的狀態(tài):
這時我們又回到了發(fā)生意外之前的狀態(tài),也就是說,事務(wù)給我們提供了一個可以反悔的機會。假設(shè)數(shù)據(jù)沒有發(fā)生意外,這時可以手動將數(shù)據(jù)真正提交到數(shù)據(jù)表中:COMMIT 。
事務(wù)的默認(rèn)提交被開啟 ( @@AUTOCOMMIT = 1 ) 后,此時就不能使用事務(wù)回滾了。但是我們還可以手動開啟一個事務(wù)處理事件,使其可以發(fā)生回滾:
仍然使用 COMMIT 提交數(shù)據(jù),提交后無法再發(fā)生本次事務(wù)的回滾。
事務(wù)的四大特征:
事務(wù)的隔離性可分為四種 ( 性能從低到高 ) :
查看當(dāng)前數(shù)據(jù)庫的默認(rèn)隔離級別:
修改隔離級別:
測試 READ UNCOMMITTED ( 讀取未提交 ) 的隔離性:
由于小明的轉(zhuǎn)賬是在新開啟的事務(wù)上進行操作的,而該操作的結(jié)果是可以被其他事務(wù)(另一方的淘寶店)看見的,因此淘寶店的查詢結(jié)果是正確的,淘寶店確認(rèn)到賬。但就在這時,如果小明在它所處的事務(wù)上又執(zhí)行了 ROLLBACK 命令,會發(fā)生什么?
這就是所謂的 臟讀 ,一個事務(wù)讀取到另外一個事務(wù)還未提交的數(shù)據(jù)。這在實際開發(fā)中是不允許出現(xiàn)的。
把隔離級別設(shè)置為 READ COMMITTED :
這樣,再有新的事務(wù)連接進來時,它們就只能查詢到已經(jīng)提交過的事務(wù)數(shù)據(jù)了。但是對于當(dāng)前事務(wù)來說,它們看到的還是未提交的數(shù)據(jù),例如:
但是這樣還有問題,那就是假設(shè)一個事務(wù)在操作數(shù)據(jù)時,其他事務(wù)干擾了這個事務(wù)的數(shù)據(jù)。例如:
雖然 READ COMMITTED 讓我們只能讀取到其他事務(wù)已經(jīng)提交的數(shù)據(jù),但還是會出現(xiàn)問題,就是 在讀取同一個表的數(shù)據(jù)時,可能會發(fā)生前后不一致的情況。* 這被稱為* 不可重復(fù)讀現(xiàn)象 ( READ COMMITTED ) 。
將隔離級別設(shè)置為 REPEATABLE READ ( 可被重復(fù)讀取 ) :
測試 REPEATABLE READ ,假設(shè)在兩個不同的連接上分別執(zhí)行 START TRANSACTION :
當(dāng)前事務(wù)開啟后,沒提交之前,查詢不到,提交后可以被查詢到。但是,在提交之前其他事務(wù)被開啟了,那么在這條事務(wù)線上,就不會查詢到當(dāng)前有操作事務(wù)的連接。相當(dāng)于開辟出一條單獨的線程。
無論小張是否執(zhí)行過 COMMIT ,在小王這邊,都不會查詢到小張的事務(wù)記錄,而是只會查詢到自己所處事務(wù)的記錄:
這是 因為小王在此之前開啟了一個新的事務(wù) ( START TRANSACTION ) * ,那么* 在他的這條新事務(wù)的線上,跟其他事務(wù)是沒有聯(lián)系的 ,也就是說,此時如果其他事務(wù)正在操作數(shù)據(jù),它是不知道的。
然而事實是,在真實的數(shù)據(jù)表中,小張已經(jīng)插入了一條數(shù)據(jù)。但是小王此時并不知道,也插入了同一條數(shù)據(jù),會發(fā)生什么呢?
報錯了,操作被告知已存在主鍵為 6 的字段。這種現(xiàn)象也被稱為 幻讀,一個事務(wù)提交的數(shù)據(jù),不能被其他事務(wù)讀取到 。
顧名思義,就是所有事務(wù)的 寫入操作 全都是串行化的。什么意思?把隔離級別修改成 SERIALIZABLE :
還是拿小張和小王來舉例:
此時會發(fā)生什么呢?由于現(xiàn)在的隔離級別是 SERIALIZABLE ( 串行化 ) ,串行化的意思就是:假設(shè)把所有的事務(wù)都放在一個串行的隊列中,那么所有的事務(wù)都會按照 固定順序執(zhí)行 ,執(zhí)行完一個事務(wù)后再繼續(xù)執(zhí)行下一個事務(wù)的 寫入操作 ( 這意味著隊列中同時只能執(zhí)行一個事務(wù)的寫入操作 ) 。
根據(jù)這個解釋,小王在插入數(shù)據(jù)時,會出現(xiàn)等待狀態(tài),直到小張執(zhí)行 COMMIT 結(jié)束它所處的事務(wù),或者出現(xiàn)等待超時。
轉(zhuǎn)載:
當(dāng)前題目:mysql怎么找依賴關(guān)系 數(shù)據(jù)庫依賴關(guān)系是什么意思
文章轉(zhuǎn)載:http://chinadenli.net/article18/hghcgp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、商城網(wǎng)站、網(wǎng)站收錄、手機網(wǎng)站建設(shè)、企業(yè)建站、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)