JDBC编程六步(需要背会)
第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要关闭通道。)
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行SQL语句(DQL DML…)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
第六步:释放资源(使用完资源之后一定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)
父类接口:
子类实现类接口:
第二步:获取连接接口 Connection
第三步:获取数据库操作对象接口 Statement;获取预编译数据库操作对象接口 PreparedStatement
第四步:执行SQL语句方法 executeUpdate(增删改) / executeQuery(查)
第五步:查询结果集接口(select语句时) ResultSet–>方法:executeQuery
package com.jdbc;
import java.sql.*;
/**
*JDBC编程六步:注册驱动,获取连接,获取数据库操作对象,执行sql,处理查询结果集,释放资源
*/
public class JDBCTest01 {
public static void main(String[] args) {
Connection conn=null;
Statement stmt=null;
try{
//1.注册驱动
//多态。Driver是父类接口,无法实例化,只能子类com.mysal.jdbc.Driver()调用实现类,这个com.mysal.jdbc.Driver()来自于mysql-connection-java-8.0.18。
Driver driver = new com.mysql.cj.jdbc.Driver();
//Drive driver=new oracle.cj.jdbc.driver.OracleDriver();//oracle的驱动
DriverManager.registerDriver(driver);
//2.获取连接
/**
url:统一资源定位符(网络中某个资源的绝对路径)
https://www.baidu.com/这就是URL
URL包括的几部分:协议、IP、PORT、资源名
http://182.61.200.7:80/index.html
http:// 通信协议
182.61.200.7 服务器IP地址
80 服务器软件上的端口
index.html 是服务器上某个资源名
jdbc:mysql://localhost:3306/bjpowernode
jdbc:mysql:// 协议
localhost 本机IP地址
3306 mysql数据库端口号
bjpowernode 具体的数据库实例名
oracle的URL: jdbc:oracle:thin:@localhost:1521:orcl
* */
String url="jdbc:mysql://localhost:3306/bjpowernode?serverTimezone=GMT%2B8";
String user="root";
String password="jh7851192";
conn=DriverManager.getConnection(url,user,password);
System.out.println("数据库连接对象="+conn);
//3.获取数据库操作对象(Statement专门执行SQL语句)
stmt= conn.createStatement();
//4.执行sql
String sql= "insert into dept(deptno,dname,loc) values(111,'人事部','上海')";
//以下专门执行DML语句的(insert delete update)
//返回值是“影响数据库中的记录条数”
int count=stmt.executeUpdate(sql);
System.out.println(count==1?"保存成功":"保存失败");
//5.处理查询结果集
}catch(SQLException e){
e.printStackTrace();//打印异常语句
}finally {
//6.释放资源
/*
为了保证资源一定释放,在finally语句块中关闭资源,
并且要遵循从小到大依次关闭
分别对其try ... catch
* */
try{
if(stmt !=null){
stmt.close();
}
}catch(Exception e){
e.printStackTrace();
}
try{
if(conn !=null){
conn.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}
结果:
String sql= “insert into dept(deptno,dname,loc) values(111,‘人事部’,‘上海’)”;