Java 为什么在访问数据库时控制台中没有输出?

Java 为什么在访问数据库时控制台中没有输出?,java,eclipse,oracle,Java,Eclipse,Oracle,这是我第一次使用Eclipse,我尝试使用Java创建到数据库的连接。我一步一步地执行这个过程,最后,当我单击run时,控制台中没有输出 我做错了什么 import java.sql.*; public class jdbcconnection { public static void main(String[] args) { try { Class.forName("oracle.jdbc.driver.Oracle

这是我第一次使用Eclipse,我尝试使用Java创建到数据库的连接。我一步一步地执行这个过程,最后,当我单击run时,控制台中没有输出

我做错了什么

import java.sql.*;

public class jdbcconnection {

        public static void main(String[] args) {
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "system", "password");
            Statement stm=con.createStatement();
            String sql="select * from student";
            ResultSet rs=stm.executeQuery(sql);
            while(rs.next())
                System.out.println(rs.getInt(1)+" "+rs.getString(2)+" "+rs.getString(3)+" "+rs.getInt(4));
            con.close();

        }
        catch(Exception e)
        {
            System.out.println(e);

        }

    }
}
我的学生桌:

SQL> select * from student;

    STU_ID STU_NAME     BRANC       YEAR
---------- ------------ ----- ----------
         1 xyz          mech           2
         2 abc          cse            2
         3 efg          cse            2

您的代码按预期工作;如图所示,创建和填充一个表,并通过Eclipse运行代码,这将在控制台中显示:

1 xyz mech 2
2 abc cs 2
3 efg cs 2
因此,您似乎已经通过SQL*Plus插入了这三行数据,但尚未提交它们。在Oracle中,已插入但未提交的数据对任何其他会话都不可见。表本身是可见的,因为DDL-like
createtable
会自动提交,所以不会出现错误。但表中的数据尚不可见

在insert语句(或exit,默认情况下提交)之后,只需在SQL*Plus会话中发出一个
commit
,例如:


提交后,Eclipse会话将能够看到数据。

可能您的学生表没有数据,或者您添加了数据但没有提交?另外,不要在
系统
架构或任何其他内置架构中创建自己的对象-创建新用户并在该架构下完成所有工作。将代码作为文本发布,并添加我的学生表的图像。@AlexPoole如何检查数据是否已提交?尝试从其他客户端或会话查询数据;这就是您在Eclipse中所做的。但是,如果您刚刚在SQL*Plus会话中插入了行,那么您需要显式地发出一个
commit
命令。谢谢,它也起到了作用。如何在oracle中创建自己的用户?。
create table student (stu_id number, stu_name varchar2(10), branch varchar2(5), year number);

insert into student (stu_id, stu_name, branch, year) values (1, 'xyz', 'mech', 2);
insert into student (stu_id, stu_name, branch, year)values (2, 'abc', 'cs', 2);
insert into student (stu_id, stu_name, branch, year)values (3, 'efg', 'cs', 2);

commit;