所以我的问题是在我在数据库中插入一条新记录后,我想执行一个应该包含该新记录的 SELECT 查询。但是,返回的数据不包括新添加的记录。似乎每当我第一次打开连接时,数据库中已有的内容就是我的程序运行的内容。我希望这是有道理的。感谢所有输入。
更新:
所以这是 INSERT 片段
String DML = "INSERT INTO MEMBERS (FIRST_NAME, LAST_NAME, BIRTHDATE, DEATH_DATE, MARITAL_STATUS,"
+ " WEDDING_DATE, SPOUSE_NAME, MILITARY_SERVICE, DATE_JOINED, DEPARTURE_DATE, ACCEPTANCE_MODE, DEPARTURE_MODE,"
+ " RELATED_TO, NOTES) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(DML);
pstmt.setString(1, jTextField2.getText());
pstmt.setString(2, jTextField1.getText());
pstmt.setString(3, jTextField6.getText());
pstmt.setString(4, jTextField11.getText());
pstmt.setString(5, jTextField3.getText());
pstmt.setString(6, jTextField5.getText());
pstmt.setString(7, jTextField4.getText());
pstmt.setString(8, jTextField8.getText());
pstmt.setString(9, jTextField7.getText());
pstmt.setString(10, jTextField10.getText());
pstmt.setString(11, jTextField9.getText());
pstmt.setString(12, jTextField13.getText());
pstmt.setString(13, jTextField14.getText());
pstmt.setString(14, jTextArea1.getText());
pstmt.executeUpdate();
if (conn.getAutoCommit() == false)
conn.commit();
现在这是 SELECT 片段,如果在 INSERT 之后触发
pstmt=conn.prepareStatement("SELECT CONCAT(LAST_NAME, ', ', FIRST_NAME) AS NAME FROM MEMBERS ORDER BY LAST_NAME, FIRST_NAME");
rs=pstmt.executeQuery();
最佳答案
很可能您禁用了autocommit
模式和/或您正在运行 2 个查询(INSERT
然后是 SELECT
)作为交易。
尝试打开 autocommit
模式on 然后再次运行 2 个查询(INSERT
然后 SELECT
),它应该可以。
关于java - 在 INSERT 语句之后选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33029563/