用户输入未显示在数据库中 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 语句,例如 INSERT
、UPDATE
、DELETE
或 MERGE
.
你想要 PreparedStatement.executeUpdate
而不是 PreparedStatement.executeQuery
。
您还需要检查您的 statement/transaction 是否正在提交数据;如果不是,那么您需要明确 COMMIT
数据。
对于插入和删除,应该是executeUpdate()。
ResultSet resultSet = preparedStarement.executeUpdate();
我正在努力自学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 语句,例如INSERT
、UPDATE
、DELETE
或MERGE
.
你想要 PreparedStatement.executeUpdate
而不是 PreparedStatement.executeQuery
。
您还需要检查您的 statement/transaction 是否正在提交数据;如果不是,那么您需要明确 COMMIT
数据。
对于插入和删除,应该是executeUpdate()。
ResultSet resultSet = preparedStarement.executeUpdate();