观马士兵的JDBC视频的疑问之Statement的使用

来源:互联网 发布:周杰伦方文山知乎 编辑:程序博客网 时间:2024/06/05 03:46

       看来马士兵的JDBC的视频,发现还是有很多不能理解的地方。

       今天学习了他的JDBC插入数据的视频,他介绍了两种方法,分别是(1)PreparedStatement;(2)直接使用Statement。其中第一种方法,

部分代码:

          PreparedStatement pstmt = null;

          Class.forName("oracle.jdbc.driver.OracleDriver");
          //new oracle.jdbc.driver.OracleDriver();
         conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott" , "tiger");
         pstmt = conn.prepareStatement("insert into dept2 values (?,?,?)");
         pstmt.setInt(1,deptno);
         pstmt.setString(2,dname);
         pstmt.setString(3,loc);
         pstmt.executeUpdate();

       在这个方法里面,最后插入数据的时候,要先运行Run as ---Run,然后在Program arguments里面输入数据,才能完成JDBC的插入。这部分暂且不论,下面我的主要问题是在第二种方法。

       第二种方法是通过Statement直接插入的,视频中他是通过String sql = "insert into dept2 values ("+ deptno + ",'" + dname + "','" + loc + "')";这条语句实施的,实验中,这条语句因为比较复杂,容易写错,所以不推荐使用。

       但是我在编程中,发现了一个比较容易的写法,如下:

       String sql = "insert into dept2 values (99,'GAME ','BJ')";这样的写法也是能够运行的,而且还不需要第一种方法里面的的输入参数,直接运行Run as--Java Application,就能直接插入数据了。不知道是不是马士兵的视频里面的版本问题还是现在已经改进,毕竟他的视频还是07年的,距今大概9年了。而且上网搜了一下,发现很多人的写法和我这样是类似的。所以,我觉得String sql = "insert into dept2 values ("+ deptno + ",'" + dname + "','" + loc + "')";这种写法不是很简便,倾向于自己所写的这种语句。

1 0