用户输入未显示在数据库中 table?

user inputs not show in database table?

我正在努力自学java(我的英语不好抱歉)。在提供一些输入后,我尝试在 table 上显示(使用 select * 来自 emp 的值;)它在 table 上,但是行没有创建我应该怎么做才能让用户输入到(数据库)

public static void main(String[] args) throws SQLException, ClassNotFoundException {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","system","manager");
    
    PreparedStatement preparedStatement= connection.prepareStatement("insert into emp values(?,?,?)" );
    
    Scanner scanner = new Scanner(System.in);
    
    while (true) {
        
        System.out.println("enter eid");
        int eid = scanner.nextInt();
        System.out.println("enter ename");
        String ename = scanner.next();
        System.out.println("enter esal");
        double esal = scanner.nextDouble();
        
        preparedStatement.setInt(1, eid);
        preparedStatement.setString(2, ename);
        preparedStatement.setDouble(3, esal);
        System.out.println("data insert successfull....do you want add one more recored(yes/no)");
        String option = scanner.next();
        
        
        if(option.equals("no")) 
            break;
        
    }
    
       scanner.close();
       preparedStatement.close();
       connection.close();
       System.out.println("resource are closed");
    
}

}

问题在 ResultSet resultSet=preparedStatement.executeQuery(); executeQuery() 仅用于选择,如果你想插入所以你必须使用 preparedStatement.execute();preparedStatement.executeUpdate();

有 3 个不同的 JDBC 执行函数:

  • PreparedStatement.execute 用于执行任何语句;包括CREATE TABLE等DDL语句
  • PreparedStatement.executeQuery 用于执行 SELECT 语句。
  • PreparedStatement.executeUpdate 用于执行 DML 语句,例如 INSERTUPDATEDELETEMERGE.

你想要 PreparedStatement.executeUpdate 而不是 PreparedStatement.executeQuery

您还需要检查您的 statement/transaction 是否正在提交数据;如果不是,那么您需要明确 COMMIT 数据。

对于插入和删除,应该是executeUpdate()。

ResultSet resultSet = preparedStarement.executeUpdate();