修改mysql配置文件my.cnf:
創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司與策劃設(shè)計(jì),陵川網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:陵川等地區(qū)。陵川做網(wǎng)站價(jià)格咨詢:13518219792
在[mysqld]中添加
重啟mysql服務(wù),用空密碼直接登錄,查詢用戶表,有結(jié)果則按如下步驟修改,結(jié)果為空直接最后的解決辦法
修改對應(yīng)用戶的密碼
取消或注釋掉my.cnf配置文件添加的選項(xiàng) skip-grant-tables ,重啟mysql服務(wù),搞定收工。
編輯my.cnf配置文件,添加或修改下面兩項(xiàng)(我這沒有sql_mode項(xiàng)):
插入root用戶數(shù)據(jù)
再次查詢mysql.user表,會(huì)報(bào)錯(cuò)
需要修復(fù)mysql.user表
修改root用戶的權(quán)限:
執(zhí)行SQL語句:update tablename set C=null where A=2
tablebname是這張表的表名 C和A是字段。
執(zhí)行這個(gè)語句的前提是表的設(shè)計(jì)允許C字段內(nèi)容為空
mybatis返回的null類型數(shù)據(jù)消失,導(dǎo)致前端展示出錯(cuò)。
如果查詢出的結(jié)果是空值,應(yīng)當(dāng)轉(zhuǎn)換成空字符串。當(dāng)然在前端也能進(jìn)行判斷,但要求后臺實(shí)現(xiàn)這個(gè)功能。
解決方案:
使用如下方法查詢:
SELECT?IFNULL(sex,'')?AS sex FROM user?--如果查詢到這個(gè)sex為null值,那么就賦值成空字符串不過,如果查詢語句本身為null,那么返回前端的還是null,這個(gè)就要在代碼里判斷了。
比如:
SELECT IFNULL(sex,'') AS sex FROM user WHERE id=100
這條語句本身的返回結(jié)果是null,它也就不會(huì)執(zhí)行IFNULL函數(shù)了,最后的返回結(jié)果當(dāng)然也是null。所以方法是在代碼中增加判斷:
if(ansList == null || ansList.size() == 0){...}
擴(kuò)展資料
mySql中IFNULL的使用說明:
IFNULL(expr1,expr2)
如果expr1不是NULL,IFNULL()返回expr1,否則它返回expr2。IFNULL()返回一個(gè)數(shù)字或字符串值
具體用法如:現(xiàn)有學(xué)生表(tbl_student)和分?jǐn)?shù)表(score),查詢學(xué)生表的所有字段和學(xué)生相對于的英語成績(english_score)sql如下:
select stu.*,IFNULL(score.english_score,0)?from tbl_student stu,tbl_score score where 1=1 and stu.stu_id=score.stu_id
以上sql中,如果score表中的english_score有值,則IFNULL(score.english_score,0)就顯示english_score,否則,顯示0。