JDBC
本质
一套接口
准备工作
-
先从官网下载对应的驱动(jar包),然后将其配置到环境变量classpath当中(仅文本编辑器开始时需要配置)
classpath=.;jar包绝对路径
JDBC编程六步
-
注册驱动
作用:告诉java程序,即将要连接的是哪个品牌的数据库
-
获取连接
表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道。
-
获取数据库操作对象(专门执行sql语句的对象)
-
执行SQL语句
-
处理查询结果集
只有第4步执行的是select语句时,才有。
-
释放资源
案例1 - 新增数据
import java.sql.Driver;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
import java.sql.Statement;
public class JDBCTest01 {
public static void main(String[] args) {
Connection conn = null;
Statement sta = null;
try {
// 1.注册jdbc驱动
// 方法一:
Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);
// 方法二:常用
// Class.forName("com.mysql.cj.jdbc.Driver");
// 2.建立连接
// jdbc:mysql://ip地址:端口号(默认3306)/库名
String url = "jdbc:mysql://xxx.xxx.xx.xx:3306/xxx";
// mysql用户名
String user = "xxx";
// mysql密码
String password = "xxx";
conn = DriverManager.getConnection(url, user, password);
// 3.获取操作对象
sta = conn.createStatement();
// 4.执行sql
String sql = "insert into emp (EMPNO, ENAME) values(7935, 'zhangShen')";
//String sql = "delete from emp where empno=7935;";
int count = sta.executeUpdate(sql);
if (count > 0) {
System.out.println("添加成功!");
}
// 5.处理查询结果(只有执行的是select语句才需要处理)
} catch (SQLException e){
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
// 6.释放资源
// 应该从小到大关闭,并且单独写try...catch...
if(sta != null) {
try{
sta.close();
}
catch (SQLException e){
e.printStackTrace();
}
}
if(conn != null) {
try{
conn.close();
}catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
案例2 - 删除数据
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Connection;
public class JDBCTest02 {
public static void main(String[] args) {
Connection conn = null;
Statement sta = null;
try {
// 1.注册jdbc驱动
// 方法一:
Driver driver = new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);
// 方法二:常用
// Class.forName("com.mysql.cj.jdbc.Driver");
// 建立连接
// jdbc:mysql://ip地址:端口号(默认3306)/库名
String url = "jdbc:mysql://xxx.xxx.xx.xx:3306/xxx";
// mysql用户名
String user = "xxx";
// mysql密码
String password = "xxx";
conn = DriverManager.getConnection(url, name, password);
// 获取操作对象
sta = conn.createStatement();
// 执行sql
String sqlStr = "delete from emp where empno = 7935";
int count = sta.executeUpdate(sqlStr);
if(count > 0) {
System.out.println("删除成功!!!");
}
// 5.处理查询结果集(只有select语句才需要处理)
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
if (sta != null) {
try{
sta.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
if(null != conn) {
try {
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
}
}