一.设计理念
定义了一些接口(java.sql包中),各个数据库厂商实现接口:
1.Driver
2.Connection
3.Statement
4.ResultSet
二.使用步骤(以sqlsever2005为例)
1.获得对应数据库的驱动程序jar包
(百度搜索:sqlserver2005 jdbc driver download)
2.项目引用jar包(以idea开发工具为例)
1)项目文件夹下新建lib文件夹
2)把jar包放入lib文件夹中
3)项目引用(project structure->libraries)
3.代码实现
1) 加载驱动程序
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
a)Class.forName("驱动程序包名+类名")静态方法
b)驱动程序类名 java.sql.Driver接口
c)forName方法会抛出一个编译时异常ClassNotFoundException,必须处理(Alt+Enter 错误代码结局方案)
d)驱动程序加载到内存并且去DriverManager那里注册
2 )建立连接(Connection)
Connection con = DriverManager.getConnection(url);
a)静态方法(类名.方法名)
b)getConnection方法会抛出一个编译时异常SQLException
一般调用java.sql包中的任何一个类的任何一个方法都会抛出编译时异常 SQLException
c)url 数据库类型,名称IP:port:dbName userName, pwd
3) 创建Statement
4 )执行sql
a)sql语句影响的行数函数
int[SQL语句影响行数] executeUpdate(String insert,update,delete sql)
b)ResultSet executeQuery(String selectSQL)
5) 关闭资源
a)关闭资源顺序与建立资源顺序刚好相反
b)当一个对象没有指向它的任何引用时,表示为垃圾资源 ,等待垃圾回收车回收
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class TestJDBC1 {
public static void main(String[] args) {
Connection con = null;
Statement sta = null;
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("驱动程序加载完毕!");
String url = "jdbc:sqlserver://localhost:1433;databaseName=pas";
con = DriverManager.getConnection(url, "sa", "sa");
System.out.println(con);
sta = con.createStatement();
//String sql = "insert into
teacher(teanum,teaName,teatitle,teatypeid,teabtd,pwd, static)
values ('20210001', '刘晓燕', '考研老师', 1, '1982-5-7', 1, 1)";
//这些列名属性来自SQLServer中建表
String sql = "delete from teacher where teaNum = '20210001'";
//sql语句影响的行数
int rows = sta.executeUpdate(sql);
if (rows == 1) {
System.out.println("op success");
} else {
System.out.println("op error");
}
} catch (ClassNotFoundException e) {
System.out.println("驱动程序没有找到");
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (sta != null) {
sta.close();
sta = null;
}
if (con != null) {
con.close();
con = null;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
System.out.println("后面代码");
}
}
测试结果: