第一个JDBC法式榜样

第一个JDBC法式榜样

•       编写一个法式榜样,这个法式榜样从student表中读取数据,并打印在敕令行窗口中。

一、搭建实验情况

1、新建一个Java工程,并导入数据驱动。

2、编写法式榜样,在法式榜样中加载数据库驱动

办法①,DriverManager.registerDriver(Driver driver)

             DriverManager.registerDriver(new OracleDriver());

办法②

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

 

3、建立连接(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();
           }
        }
      }
   }
}