Scanner input=new Scanner(System.in);
Connection conn=null;//表示数据库的连接对象
PreparedStatement pstmt=null;//表示数据库的更新操作
System.out.print("请输入名字:");
String name=input.next();
System.out.print("请输入年龄(年龄必须是数字):");
int age=input.nextInt();
System.out.print("请输入生日:");

Date date=new Date(input.next());
System.out.print("请输入工资:");
float salary=input.nextFloat();
String sql="INSERT INTO person(pid,name,age,birthday,salary) VALUES(perseq.nextcal,?,?,?,?)";
System.out.println(sql);
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
pstmt=conn.prepareStatement(sql);//使用预处理的方式创建对象
pstmt.setString(1, name);//第一个?号的内容
pstmt.setInt(2, age);//第二个?号的内容
pstmt.setDate(3,new java.sql.Date(date.getTime()));
pstmt.setFloat(4, salary);
           pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
请输入名字:张三
请输入年龄(年龄必须是数字):23
请输入生日:1994/4/03
请输入工资:4000
INSERT INTO person(pid,name,age,birthday,salary) VALUES(perseq.nextcal,?,?,?,?)
Exception in thread "main" java.sql.SQLSyntaxErrorException: ORA-00984: 列在此处不允许 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1008)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3530)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
at demo8.InsertDemo02.main(InsertDemo02.java:36)
36行是pstmt.executeUpdate();