今天看了关于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 }
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 }
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 }
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 }