Sylvester's Home

Technic Changes The World

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

今天看了关于java的JDBC的实现,也做了相应的测试,感觉不错。

我是一个新手,前段时候才看的sql语言的各种规则,在自己电脑上也装了个MySQL玩了会,

但是没有嵌入到别的编程语言中去过,今天闲着无聊,便试了下。

对于我这么个新手而言,java的JDBC的接口定义的还是很不错的,

至少已经把各个厂家的DB接口统一了起来,对开发和维护有莫大的好处。

原来只看过C/C++下的数据库处理,感觉有点麻烦,现在来看的话,轻松了很多。

 下面来说说JDBC连结数据库和处理数据库的大概过程。

首先第一步,我们需要注册一个驱动,这个驱动是各个DB厂家自己实现的。如下:

Class.forName("com.mysql.jdbc.Driver").newInstance();

这让我想起了在windows下的窗体注册。呵呵。

当然你也可以选择以下方式进行注册:

Class.forName("com.mysql.jdbc.Driver");
或者
new com.mysql.jdbc.Driver();

第二步是通过DriverManager这个类进行连接到数据库:

Connection conn = DriverManager.getConnection(url);

 

然后你就可以通过这个Connection对象对数据库进行操作了。

唯一的方法么就是让DB直行SQL语句咯,

所以下一步,你就要创建一个Statement对象:

Statement stmt = conn.createStatement();

 

现在就可以通过stmt让对应的DB执行语句咯:

代码
1 stmt.executeUpdate(sql);
2 rs = stmt.executeQuery("select * from news_table");
3 while (rs.next()) {
4     System.out.println(rs.getString("p_id"+ 
5     "|" + rs.getString("tittle"+ "|" + rs.getString("content") );
6 }

 

处理好你需要的以后,别忘了关闭资源哦。

代码
 1 if (rs != null) {
 2     try {
 3         rs.close();
 4     } catch (SQLException e) {} //ignored!!
 5         rs = null;
 6 }
 7 if (stmt != null) {
 8     try {
 9         stmt.close();
10     } catch (SQLException e) {} //ignored!!
11     stmt = null;
12 }
13 if (conn != null) {
14     try {
15         conn.close();
16     } catch (SQLException e) {} //ignored!!
17     conn = null;
18 }    

 

下面是完整的一个程序。

代码
 1 import java.sql.Connection;
 2 import java.sql.Statement;
 3 import java.sql.DriverManager;
 4 import java.sql.SQLException;
 5 import java.sql.ResultSet;
 6 
 7 public class JDBCTest {
 8     public static void main(String []argv){
 9         Connection conn = null;
10         Statement stmt = null;
11         ResultSet rs = null;
12         try {
13             Class.forName("com.mysql.jdbc.Driver").newInstance();
14             conn = DriverManager.getConnection("jdbc:mysql://localhost/news?user=root&password=root");
15         } catch (ClassNotFoundException e) {
16             e.printStackTrace();
17         } catch (SQLException e) {
18             e.printStackTrace();
19         } catch (Exception e) {
20             e.printStackTrace();
21         }
22         
23         try {
24             stmt = conn.createStatement();
25             rs = stmt.executeQuery("select * from news_table");
26             while (rs.next()) {
27                 System.out.println(rs.getString("p_id"+ 
28                     "|" + rs.getString("tittle"+ "|" + rs.getString("content") );
29             }
30         } catch (SQLException e) {
31             e.printStackTrace();
32         } finally {
33             if (rs != null) {
34                 try {
35                     rs.close();
36                 } catch (SQLException e) {} //ignored!!
37                 rs = null;
38             }
39             if (stmt != null) {
40                 try {
41                     stmt.close();
42                 } catch (SQLException e) {} //ignored!!
43                 stmt = null;
44             }
45             if (conn != null) {
46                 try {
47                     conn.close();
48                 } catch (SQLException e) {} //ignored!!
49                 conn = null;
50             }            
51         }
52     }
53 }

 

 

posted on 2010-01-22 16:25  Sylvester  阅读(344)  评论(0编辑  收藏  举报