2013-03-26 57 views
0

我使用JDBC連接mysql。 這是我的表:使用mysql成功插入數據,但無法通過選擇檢索數據

Table: SensorAttr 
Columns: 
SID int(11) PK 
TID int(11) 
TMID int(11) 
SensorType varchar(45) 
TimeoutType varchar(45) 

我用insert一個地推SensorAttr一個我的數據,和驅動器返回整數告訴我:「你的要求完成」。但是,我可以t find the data in the傳感器。

PreparedStatement statement = this.con.prepareStatement(sqlStatement); 
int cnt = statement.executeUpdate(); 

sqlStatement = insert into SensorAttr(SID,TID,TMID,SensorType,TimeoutType) value(33,3,0,'Temp','T1s') 

調用返回1 cnt.I意味着呼叫已被正確執行和1行受影響意思。

但是,在控制檯中,我使用來自SensorAttr的select *。結果顯示有些行缺失。

+1

Sooo,你的選擇語句在哪裏? – 2013-03-26 11:48:21

+0

我加了..... – fhfuwei 2013-03-26 12:24:09

+0

你提交了你的修改嗎?也許這是默認隔離級別的問題('可重複讀取')。在運行select之前,嘗試在控制檯中發佈一個'commit'。 – 2013-03-26 12:31:18

回答

-1

你,如果你想在表

嘗試插入項目使用execute方法()而不是update()方法,

的Statement.execute(),而不是關於Statement.executeUpdate()

+0

這是非常無益的。請澄清或刪除。 – 2013-03-26 11:54:23

+0

有48個列需要插入表格和48次插入。即使每次插入都是成功的,我在表格中找不到一些列。 – fhfuwei 2013-03-26 12:04:22

+0

這不僅沒有幫助,而且也是錯誤的。 'executeUpdate()**是**執行DML語句的方法。 – 2013-03-26 12:14:25

0
PreparedStatement pstmt = con.prepareStatement("SELECT column1,column2 FROM abc WHERE id=?"); 
pstmt.setString(1,"101"); 
String firstColumn=""; 
String secondColumn=""; 
ResultSet rs = pstmt.executeQuery(); 
while (rs.next()) { 
    first = rs.getString(1); 
    second = rs.getString(2);  
    System.out.println("column1 = " + first +`enter code here` "column2 = " + second); 
} 
rs.close(); 
pstmt.close(); 
+0

請整理你的代碼 - 這是難以辨認的。 – 2013-03-26 12:01:27

+0

你不懂的代碼...? – Srinivas 2013-03-26 12:04:15

+0

感謝您的幫助。我混淆了爲什麼我看不到數據,即使調用已經正確執行 – fhfuwei 2013-03-26 12:11:27

相關問題