//该例是典型的没有返回值的sql语句,所以我们不会用到ResultSet类,对于这样的(在表中插入数据)sql语句的执行,我们常常使用PreparedStatement类而不是简单的Statement类,值得一提的是,前者是后者的子接口
//该例我们依然使用Statement类,尽管在这里不适合,但这样的思想和操作是很重要的
import java.sql.* ;
public class JdbcTest {
public static void main(String[] args) {
Connection conn = null; //由于我们还没有在项目中导入对应数据库的包,所以这些类不会高亮显示(因为本机没有安装Oracle)
Statement stmt = 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];
//构造一条我们将要执行的sql语句(这就是Statement在这里比较麻烦的原因)
String sql = "insert into dept values (" + deptno + ",'" + dname + "','" + loc + "')";
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT","scott","tiger");
stmt = conn.createStatement();
stmt.execute(sql);//执行我们构造好的语句
}
catch(ClassNotFoundException e) {
e.printStackTrace();
}
catch(SQLException e) {
e.printStackTrace();
}
finally {
try {
if(stmt != null) {
stmt.close();
stmt = null;
}
if(conn != null) {
conn.close();
conn = null;
}
}
catch(SQLException e) {
e.printStackTrace();
}
}
}
}