我正在努力自学java(对不起,我的英语不好(。在给出一些输入后,我试图在表上显示(使用select*from emp;的值(,但行没有创建我应该做什么来获得(数据库(的用户输入
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");
}
}
有3种不同的JDBC执行函数:
PreparedStatement.execute
用于执行任何语句;包括诸如CREATE TABLE
等DDL语句PreparedStatement.executeQuery
用于执行SELECT
语句PreparedStatement.executeUpdate
用于执行DML语句,例如INSERT
、UPDATE
、DELETE
或MERGE
您想要的是PreparedStatement.executeUpdate
,而不是PreparedStatement.executeQuery
。
您还需要检查您的对账单/交易是否正在提交数据;如果不是,则需要显式COMMIT
数据。
对于插入和删除,应该是executeUpdate((。
ResultSet ResultSet=preparedStarement.executeUpdate((;
问题出在ResultSet resultSet=preparedStatement.executeQuery();
executeQuery((上。如果要插入,则仅用于选择,因此必须使用preparedStatement.execute();
或preparedStatement.executeUpdate();