import java.sql.* ;
public class JdbcTest2 {
public static void main(String[] args) {
Connection conn = null; //由于我们还没有在项目中导入对应数据库的包,所以这些类不会高亮显示(因为本机没有安装Oracle)
PreparedStatement pstmt = null;
int deptno = 0;
String dname = null;
String loc = null;
if(args.length != 3) {
System.out.println("数据有误");
}
try {
deptno = Integer.parseInt(args[0]); //自动拆箱
}
catch(NumberFormatException e) { //防止用户输入的第一个参数是asdf之类的
e.printStackTrace();
}
dname = args[1];
loc = args[2];
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT","scott","tiger");
pstmt = conn.prepareStatement("insert into dept values (?,?,?)"); //我的sql语句中的三个值是待定的,这条sql语句是预备执行的!(不要忘了前一例的该方法是没有参数的,因为Statement类没有该功能)
//既然未定,那么我们就要设定
pstmt.setInt(1, deptno); //1代表第一个问号,即第一个待定值
pstmt.setString(2, dname); //2代表第二个问号,即第一个待定值
pstmt.setString(3, loc); //3代表第三个问号,即第三个待定值
pstmt.executeUpdate(); //由于我们前面已经有一条sql语句待执行,所以这里的executeUpdate()方法没有参数了(不要忘了上例的execute方法的参数是一条sql语句)
}
catch(ClassNotFoundException e) {
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}
finally {
try {
if(pstmt != null) {
pstmt.close();
pstmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
}
catch(SQLException e) {
e.printStackTrace();
}
}
}
}