第一個JDBC程序

第一個JDBC程序

?       編寫一個程序,這個程序從student表中讀取數據,并打印在命令行窗口中。

一、搭建實驗環境

1、新建一個Java工程,并導入數據驅動。

二、編寫程序,在程序中加載數據庫驅動

方法①,DriverManager.registerDriver(Driver driver)

             DriverManager.registerDriver(new OracleDriver());

方法②

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

 

三、建立連接(Connection)

      Connection conn = DriverManager.getConnection(url,user,pass);

四、創建用于向數據庫發送SQLStatement對象,并發送sql

      Statement st = conn.createStatement();

      ResultSet rs = st.excuteQuery(sql);

五、從代表結果集的ResultSet中取出數據,打印到命令行窗口

六、斷開與數據庫的連接,并釋放相關資源

TestJDBC.java 

import java.sql.*;

public class TestJDBC {
   private static Connection conn = null;
   private static Statement statement = null;
   private static ResultSet rs = null;

   public static void main(String[] args) {

   }

   public static void executeQuery(String sql) {
      try {
        // 1, 向JDBC注冊(需要操作的)數據庫操作
        // ①,將驅動引入到項目中
        // ②,通過反射機制注冊驅動
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        // 2,通過DriverManager獲取Java和數據庫之間的連接
        conn = DriverManager.getConnection(
              "jdbc:sqlserver://localhost:1433;databaseName=mydb", "sa",
              "admin123");
        // 3,準備要操作的SQL語句
        // 4,從連接conn中獲取sql 編譯工具
        statement = conn.createStatement();
        // 5,通過sql語句的編譯工具執行sql語句
        rs = statement.executeQuery(sql);
        while (rs.next()) {
           int age = rs.getInt("sage");
           System.out.println(rs.getString("sno") + "\t"
                 + rs.getString("sname") + "\t" + age + "\t" + ","
                 + rs.getString("sdept"));
        }
        // 關閉數據庫連接
      } catch (SQLException e) {
        System.out.println("連接數據庫失敗");
        e.printStackTrace();
      } catch (ClassNotFoundException e) {
        System.out.println("加載驅動失敗!");
        e.printStackTrace();
      } finally {
        if (rs != null) {
           try {
              rs.close();
           } catch (SQLException e) {
              e.printStackTrace();
           }
        }
        if (statement != null) {
           try {
              statement.close();
           } catch (SQLException e) {
              e.printStackTrace();
           }
        }
        if (conn != null) {
           try {
              conn.close();
           } catch (SQLException e) {
              e.printStackTrace();
           }
        }
      }
   }

   // Statement 中的boolean
   // flag=st.statement(sql)方法:如果操作成功,返回false,如果操作失敗,則返回true;
   public static void executeUpdate(String sql) {
      try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection conn = DriverManager.getConnection(
              "jdbc:sqlserver://localhost:1433;databaseName=mydb", "sa",
              "admin123");
        Statement ps = conn.createStatement();
        int i = ps.executeUpdate(sql);
        if (i > 0) {
           System.out.println("操作成功");
        } else {
           System.out.println("操作失敗");
        }
      } catch (ClassNotFoundException e) {
        e.printStackTrace();
      } catch (SQLException e) {
        e.printStackTrace();
      } finally {
        if (statement != null) {
           try {
              statement.close();
           } catch (SQLException e) {
              e.printStackTrace();
           }
        }
        if (conn != null) {
           try {
              conn.close();
           } catch (SQLException e) {
              e.printStackTrace();
           }
        }
      }
   }
}