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


