Java 已使用mysql成功插入数据,但无法通过选择检索数据
我使用JDBC连接mysql。 这是我的桌子:Java 已使用mysql成功插入数据,但无法通过选择检索数据,java,mysql,Java,Mysql,我使用JDBC连接mysql。 这是我的桌子: Table: SensorAttr Columns: SID int(11) PK TID int(11) TMID int(11) SensorType varchar(45) TimeoutType varchar(45) 我使用insert将数据逐个推入SensorAttr,驱动程序返回整数告诉我“您的请求已完成”。但是,我无法在传感器中找到数据 PreparedStatement statement = this.con.
Table: SensorAttr
Columns:
SID int(11) PK
TID int(11)
TMID int(11)
SensorType varchar(45)
TimeoutType varchar(45)
我使用insert
将数据逐个推入SensorAttr
,驱动程序返回整数告诉我“您的请求已完成”。但是,我无法在传感器中找到数据
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。我的意思是1mean调用已正确执行,1行受影响
但是,在控制台中,我使用select*from SensorAttr。结果显示缺少某些行 如果要在表中插入项,必须使用execute()方法,而不是update()方法 试试看
statement.execute()而不是statement.executeUpdate()Sooo,您的select语句在哪里?您正在提交更改吗?可能是默认隔离级别(
repeatable read
)有问题。在运行select there之前,请尝试在控制台中发出一个commit
。我已将autocommit值设置为1。我搞不懂为什么还有一些栏目还没找到。@horse\u没有名字,就是这个。jobqueue用于获取请求并处理它。我使用多线程将请求发送到JobQueue。然后,JobQueue按顺序处理请求。处理请求只是将数据插入表中。表中的SID只是队列中的请求ID。如果插入48列,表中会有38列。缺少10列。丢失的号码没有被查出,我不明白。如何“插入48列”?您的表只有5列。您是否混淆了行和列?或者你是说在其中一列中插入值48,然后看到值38?这是毫无帮助的。请澄清或删除。表中有48列要插入,48次插入。即使每次插入都成功,我也找不到表中的某些列。这不仅没有帮助,而且是错误的executeUpdate()
是执行DML语句的方法。感谢您的帮助。我很困惑,为什么即使执行了调用,我也看不到数据correctly@Srinivas我认为你应该在发布之前格式化你的代码,或者根本不发布。这就是全部。
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();