在写代码前,必须先将你要使用的数据库的jar包导入项目
这里写代码片
“`
package it_casit_02;
import java.sql.*;
@SuppressWarnings("all")
public class ResultSetDemo {
public static void main(String[] args) {
Statement stat = null;//定义在外面是为了提升作用域
Connection conn = null;
try {/**
* 第一步:注册驱动:
* 使用Class调用forName的原因
* forName():参数是一个类的字符串表现形式,只要记住参数是一个类即可
* 当使用这个方法的时候,参数中的类 会被加载进入内存当中,而需要知道的是,加载进入内存即会调用此类的静态代码块
* 通过查阅API能到知道此类的静态代码块为:
static {
try {
DriverManager.registerDriver(new Driver());
} catch (SQLException var1) {
throw new RuntimeException("Can't register driver!");
}
从上述代码中我们可以看到"DriverManager.registerDriver(new Driver());"这样一句代码,所以实际上,forName()方法,在底层调用
了参数类的方法获得了注册驱动这个步骤
*/
Class.forName("com.mysql.jdbc.Driver");//此处的编译期异常应当捕获处理
/**
* 第二步:获取数据库连接的对象
* getConnection()方法的参数解释:url:[“jdbc:mysql:”固定写法,//127.0.0.1:3306/bb8:连接的电脑的IP地址,数据库端口号,
* 数据库名字] , user:数据库的用户名 ,password:数据库的密码
* 通过 DriverManager类 调用静态方法 getConnection()
* 此方法调用后只要做了两件事,一个是通过传递过来的参数连接数据库,第二个是返回了一个数据库连接的对象
*
*/
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/bb8", "root", "123");//此处的编译期异常捕获处理
/**
* 第三步:获取操作SQL语句的对象
* 通过 coon 调用 createStatement() 获取 Statement 类的 对象 stat
*/
//Statement stat = conn.createStatement();
stat = conn.createStatement();//提升作用域
//第四步:创建SQL语句
String s = "update emp set job = '经理' where empno = 7369";
/**
*第五步:执行SQL语句
* i值 ,在执行DML语句时,返回的是一个影响了几行的数字
*/
int i = stat.executeUpdate(s);
if (i != 0) {
System.out.println("操作成功");
} else {
System.out.println("操作失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
/**
* finally代码块,无论出现什么异常,都会执行的代码
* 释放资源
stat.close();当直接这样写的时候,stat对象会报出找不到此对象的错误,此错误是由于stat对象的作用域不够导致的,所以要提升它的作用域,
必须将创建此对象的过程定义在try大括号的外面
*/
//为了防止空指针异常,我们将先行判断后,再执行释放资源的动作,如果为空值,也就不需要去释放资源
if (stat != null) {
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
}