1.调用Class类的静态方法forName(驱动程序类的包名加类名)
(1)驱动程序一定实现了java.sql.Driver接口
(2)静态方法Class.forName()方法会抛出一个编译时异常ClassNotFoundException
解决方法 alt + enter 选择try catch
(3)加载驱动程序的这个过程会去DriverManager那里注册
2.建立链接
(1)创建Connection类的对象 con
getConnection会抛出一个编译时异常SQLEXception
调用java.sql包中的任何一个类的任何一个方法都会抛出编译时异常Exception
con = DriverManager.getConnection(url,"sa","sa");
(2)url为统一资源定位符 格式为:IP地址:端口号(port);Database名称
例如jdbc:sqlserver://localhost:1433;databaseName=pas
3.创建Statement对象
statement提供了三个方法 executeUpdate executeQuery execute
Statement sta = null; sta = con.createStatement();
4.执行SQL语句
(1)int executeUpdate(insert update delete)返回sql语句影响的行数
(2)ResultSet executeQuery(select) 返回一张临时表
5.关闭资源
(1)我们把关闭资源的语句放在finally块中 因为除非程序中途退出 否则finally块都是最后且一定会执行的
(2)因为关闭两个对象的语句在finally块中 所以要将两个对象定义为全局对象
(3)如果数据库配置服务未启动 链接不上数据库 程序根本就不会运行 自然也不会有对象的存在
所以在关闭资源前必须加上一个判断 判断两个对象是否存在
整体程序代码如下
package com.xiaozhang3; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class TestJDBC3 { public static void main(String[] args) { Statement sta = null; Connection con = null; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url = "jdbc:sqlserver://localhost:1433;databaseName=pas"; con = DriverManager.getConnection(url,"sa","sa"); sta = con.createStatement(); String sql = "delete from teacher where teanum = '19910209'"; int rows = sta.executeUpdate(sql); if (rows == 1) { System.out.println("操作成功"); }else{ System.out.println("操作失败"); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException throwables) { throwables.printStackTrace(); }finally { try { if (sta != null){ sta.close(); sta = null; } if (con != null) { con.close(); con = null; } } catch (SQLException e) { e.printStackTrace(); } } } }