第一个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();
           }
        }
      }
   }
}