
1.注册驱动
通俗的来说就是告诉Java程序我们要连接的是哪个数据库。
2.获取数据库连接
开启Java进程和MySQL进程之间的通道。(可以理解为两通道之间的I/O流打开)
3.获取数据库操作对象
这个对象很重要,用它来执行SQL语句。
4.执行SQL语句
执行CRUD操作
5.处理查询结果集
只有当第四步是select时,才有第五步,否则可直接忽略。
6.释放资源。
关闭所有的资源(理由:因为JDBC毕竟是进程之间的通信,占用了很多资源,需要进行关闭。)
代码示例:
package myjava;
import java.sql.*;
public class JDBCTest {
public static void main(String[] args) throws SQLException {
Connection conn = null;
Statement stmt = null;
int count=0;
//1.注册驱动
//com.mysql.jdbc.Driver是MySQL数据库厂家写的,实现了java.sql.Driver接口
//如果是Oracle的话,类名就不一样了,oracle.jdbc.driver.OracleDriver
try {
Driver driver = new com.mysql.jdbc.Driver();//第一个Driver是一个接口,第二个带包名的Driver是类名
//如果是Oracle的话,就为 Driver driver=new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(driver);//Driver接口的实现类已经有了,MySQL写好的
//2.获取数据库连接
// 什么是URL?
// 统一资源定位符
// 任何一个URL都包括:
// 协议+IP地址+端口号port+资源名
// 协议:是一个提前规定好的数据传输格式,通信协议有很多:http,https,
// IP地址:
// PORT端口号:定位这台计算机上某个服务
// 资源名
// jdbc:mysql://java与MySQL通信的协议
// localhost:本机IP,也可以写成127.0.0.1
// 3306:MySQL数据库端口号
// student:数据库名称
String url = "jdbc:mysql://localhost:3306/student";
String user = "root";
String password = "111111";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();//通过一个连接对象coon可以创建多个statement对象,用这种对象来执行SQL语句
//System.out.println(stmt);
//输出连接对象的内存地址。
//System.out.println(coon);
// String insertsql = "insert into stu(sid,name,password,age,address,grade,department) values(6,'超级特工',104,21,'河南洛阳','大二','物联网工程')";
// count = stmt.executeUpdate(insertsql);//返回值为int型,为影响的数据库表中的总记录条数;
// String updatesql = "update stu set name='穿山甲' where name='张三'";
// stmt.executeUpdate(updatesql);
String deletesql="delete from stu where name='超级特工'";
count=stmt.executeUpdate(deletesql);
System.out.println(count);
} catch (SQLException e) {
e.printStackTrace();//打印异常信息,JDBC中的这种代码不需要理解,背诵即可。
} finally {
//6.先释放statement,再释放Connection,分别进行try,catch处理,放到finally中关闭
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}