⑴ 寫入數據為空
rs.open sql,conn,1,3
rs.addnew
rs("adpicurl")=adpicurl
rs("adtype")=adtype
rs("httpurl")=httpurl
rs.update
rs.close
就這段來看,沒有錯.
從你描述的操作來看,有兩個可能:
1.是你的後面的代碼有刪除的操作.試想,你先加入了,又刪除了,你的ID欄位值不是就會變了嗎?
2.你的那麼變數沒有值,也就是這些:
adpicurl
adtype
httpurl
都是空值來的.
找下其它地方的代碼吧.
⑵ JPA枚舉比較不等於失敗問題,怎麼解決
Enumerated提供了兩種持久化枚舉的方式,EnumType.ORDINAL和EnumType.STRING,但都有很大的局限性,讓人很難選擇,經常不能滿足需求
EnumType.ORDINAL:按枚舉的順序保存數字
有一些我項目不能容忍的局限性,比如
1、順序性 - java枚舉的順序從0開始遞增,沒法自己指定,我有些枚舉並不是從0開始的,或者不是+1遞增的,比如一些行業的標准代碼。
2、舊數據可能不兼容,比如-1代表刪除,映射不了
3、不健壯 - 項目那麼多人開發,保不準一個豬隊友往枚舉中間加了一個值,那完了,資料庫里的記錄就要對不上了。數據錯誤沒有異常,發現和排查比較困難
EnumType.STRING:保存枚舉的值,也就是toString()的值
同樣有局限性:
1、String類型,資料庫定義的是int,即使override toString方法返回數字的String,JPA也保存不了
2、同樣不適用舊數據,舊數據是int
3、不能改名,改了後資料庫的記錄映射不了
我對枚舉需求其實很簡單,1是保存int型,2是值可以自己指定,可惜默認的那兩種都實現不了。
沒辦法,只能考慮在保存和取出的時候自己轉換了,然後很容易就找到實體轉換器AttributeConverter,可以自定義保存好取出時的數據轉換,Yeah!(似乎)完美解決問題!
⑶ 插入mysql資料庫,sql語句沒錯,每個欄位都有值,但到插入到資料庫後值為空。為什麼
第一,在你的程序內SQL語句執行之前,把變數輸出到控制台看看是否正確接收。
第二,如果正確接收變數,把SQL在dos界面運行下,到表裡看看在不在。
⑷ jsp向mysql中插入數據 資料庫中的記錄為null
int
temp=stmt.executeUpdate("insert
into
db_need(textfield,region,field,textarea)
values('"+textfield+"','"+region+"','"+field+"','"+textarea+"')");
在這個之前
定義一個String
sql
=
("insert
into
db_need(textfield,region,field,textarea)
values('"+textfield+"','"+region+"','"+field+"','"+textarea+"')";
system.out.println(sql);
把列印出來的sql
直接去資料庫上執行一次看看是否可以執行
如果可以
就說明是你在get
connection的時候出錯
就在獲取connectiion和statement這兩個地方找錯
如果sql不能執行的話
就是sql語句錯誤
⑸ jpa id為空 為什麼還有對象
即使資料庫表中的記錄為空,jpa查詢的結果也不是null,而是一個List列表對象數為空的列表。 你之所以查詢結果為空,是因為使用hibernate(如果你是用hibernate作為jpa的實現框架的話)創建的service對象沒有創建的緣故。
⑹ 能插入數據(驗證過),但是select的結果為空,這是為什麼啊資料庫中有數據!!!
selec語句錯了 沒寫form哪個表
select 【欄位名】 form 【表名】 where 【限制條件】--where可省
⑺ c# 中,資料庫取到的值,在枚舉里為空怎麼處理
兩種處理方式。
1、在寫sql的時候
select isnull([欄位名],'') from ...
這樣就會把null的變成「」
2、在給枚舉賦值的時候,判斷一下是不是為空,若為空填充默認值
⑻ 資料庫欄位設置可以為空,插入數據就會有"null」,怎麼設置讓它不為"null"
建表的時候,欄位 not null default '';
記得採納啊