JDBC 连接数据库 删除数据之后还是存在该数据

GONGJUNRUI123 2017-10-31 04:48:52
各位, 我用JDBC连接数据库之后,在Oracle数据库里面用sql语句删除一条数据后,再在Java里查询,发现结果还是有这条数据,但是数据库里确实是被删除了,请问是怎么回事?

表名:useinfo
1. username
2. password

下面这段代码是连接JDBC的:
public class DbTools {

Connection connection;

public Connection getConn() {
try{
//load the driver
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String userName = "system";
String password = "123";

//get the connection object
connection = DriverManager.getConnection(url, userName, password);
}catch (ClassNotFoundException e){
e.printStackTrace();
}catch (SQLException e){
e.printStackTrace();
}
return connection;
}
}


我先在数据库里面删除“22222”这条数据,

然后再查询"22222":
    public static void searchJDBC(String name){
String sql = String.format("select * from useinfo where username='%s'", name);
DbTools dbTools = new DbTools();
Connection connection = dbTools.getConn();
try{
//create the statement object
Statement statement=connection.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()) {
System.out.println(resultSet.getString("username")+ " "+ resultSet.getString("password"));
}

}catch (SQLException e){
e.printStackTrace();
}
}


结果还是有这条数据
...全文
798 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
叮咚呛咚呛 2017-11-02
  • 打赏
  • 举报
回复 1
数据删除后 数据库还存在数据 一般要么是没有提交 要么就是删除出错
maradona1984 2017-11-01
  • 打赏
  • 举报
回复
引用 3 楼 GONGJUNRUI123 的回复:
引用 1 楼 yuxiangaaaaa 的回复:
数据库里删除数据之后执行select * from useinfo where username='%s'",查询一下有没有删除成功
数据库里面是没有这条记录的,但是用Java查询还是存在。我后来再数据库里面添加一条新的纪录,发现用Java查询不到,应该是数据库的数据没有实时更新到Java,Java一直是读的之前的数据
你的猜测肯定是错的 多次验证下,确认你们事务是如何控制的 比如你的删除操作commit在你查询之后 要验证非常简单,删除语句执行之后,你用数据库看是否能查询到数据
牧之~ 2017-11-01
  • 打赏
  • 举报
回复
有没有可能是缓存的问题?
偏安zzcoder 2017-11-01
  • 打赏
  • 举报
回复
引用 3 楼 GONGJUNRUI123 的回复:
引用 1 楼 yuxiangaaaaa 的回复:
数据库里删除数据之后执行select * from useinfo where username='%s'",查询一下有没有删除成功
数据库里面是没有这条记录的,但是用Java查询还是存在。我后来再数据库里面添加一条新的纪录,发现用Java查询不到,应该是数据库的数据没有实时更新到Java,Java一直是读的之前的数据
会不会是因为你查询完之后没有关闭connection和resultset而保留下了缓存啊?
GONGJUNRUI123 2017-11-01
  • 打赏
  • 举报
回复
引用 1 楼 yuxiangaaaaa 的回复:
数据库里删除数据之后执行select * from useinfo where username='%s'",查询一下有没有删除成功
数据库里面是没有这条记录的,但是用Java查询还是存在。我后来再数据库里面添加一条新的纪录,发现用Java查询不到,应该是数据库的数据没有实时更新到Java,Java一直是读的之前的数据
偏安zzcoder 2017-10-31
  • 打赏
  • 举报
回复
楼主再运行一次试试呢?
自由自在_Yu 2017-10-31
  • 打赏
  • 举报
回复
数据库里删除数据之后执行select * from useinfo where username='%s'",查询一下有没有删除成功

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧