老师如是说:有一个规律永远不变,就是量变引起质变,什么时候你吃的盐比我吃的米多,那你就可以教我了……

1.JDBC是一个标准,是J2EE的一部分;讲tcp时就提到了分层思想,jdbc也是分层,即上层只需要和紧挨着的下层通讯,方便扩展。不管开奥拓车还是开奥迪车方向盘都在屁股前边,档都在右边。不过jdbc还需要写select语句等,而hibernate完全实现了数据库底层,而且屏蔽了细小差别;现在的EJB也实现了某些功能。

JDBC小结

2.TestJDBC

  若是连接字符串或者某些方法忘了(但是有些东西不能忘,比如System.out.println),就注明平时用多了Eclipse,若是查查还能知道……

 1 import java.sql.*;
 2  
 3  public class TestJDBC {
 4  
 5      public static void main(String[] args) {
 6          ResultSet rs = null;
 7          Statement stmt = null;
 8          Connection conn = null;
 9          /*
10           * 一定要加上try catch finally,不要throws
11           * 因为若在遍历过程中出问题,那么下面的关闭就一直执行不了
12           * 服务器会越来越卡,最后死掉
13           */
14          try {
15              Class.forName("oracle.jdbc.driver.OracleDriver");
16              //new oracle.jdbc.driver.OracleDriver();
17              conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", 
18 
19 "scott", "tiger");
20              stmt = conn.createStatement();
21              //结果集就像游标,不过不像数据库,第一条没指向第一条,像iterator
22              rs = stmt.executeQuery("select * from dept");
23              while(rs.next()) {
24                  System.out.println(rs.getString("deptno"));
25                  //和实际字段类型无关,只要能转换为int就可以
26                  System.out.println(rs.getInt("deptno"));
27              }
28          } catch (ClassNotFoundException e) {
29              e.printStackTrace();
30              /*
31               * 实际上要用log4j把异常记录在日志里
32               */
33          } catch (SQLException e) {
34              e.printStackTrace();
35          } finally {
36              /*
37               * 要把rs,stmt,conn声明在大try外边
38               * 否则在这就不认识了
39               */
40              try {
41                  /*
42                   * 不加try catch会出错,因为close也会出错.
43                   * 如果rs没有初始化,这直接close那么一定会报错
44                   */
45                  if(rs != null) {
46                      rs.close();
47                      /*
48                       * 查过api后会发现close后会直接设置为null
49                       * 方便gc回收
50                       * 写下面的是为了展现良好的编程风格
51                       */
52                      rs = null;
53                  }
54                  if(stmt != null) {
55                      stmt.close();
56                      stmt = null;
57                  }
58                  if(conn != null) {
59                      conn.close();
60                      conn = null;
61                  }
62              } catch (IOException e) {
63                  e.printStackTrace();
64              }
65          }
66      }
67  
68  }
69 
70 View Code
View Code

相关文章:

  • 2021-11-19
  • 2022-12-23
  • 2021-09-29
  • 2021-09-19
  • 2022-12-23
猜你喜欢
  • 2021-09-07
  • 2022-12-23
  • 2022-02-05
  • 2021-11-19
  • 2021-10-23
  • 2021-11-19
  • 2021-11-19
相关资源
相似解决方案