JDBC编程六步
第一步:注册驱动(作用:告诉Java程序,即将要连接的是哪个品牌的数据库)
第二步:获取连接(表示JVM的进程和数据库进程之间的通道打开了,这属于进程之间的通信,重量级的,使用完之后一定要手
第三步:获取数据库操作对象(专门执行sql语句的对象)
第四步:执行SQL语句(DQL DM....)
第五步:处理查询结果集(只有当第四步执行的是select语句的时候,才有这第五步处理查询结果集。)
第六步:释放资源(使用完资源之后二定要关闭资源。Java和数据库属于进程间的通信,开启之后一定要关闭。)
首先我们新建一个空的项目工程
然后我们建一个模块
点击java,直接点击下一步
然后在jdbc项目下右键新建一个目录
把mysql的jar包复制过来这个jar包如何下载,上一个博客已经讲过了,详细的可以去看一下。然后我们还得引入jar包,详细也是在上一个博客。
然后咱就可以来连接数据库了。
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
第二步:获取连接
String url="jdbc:mysql://localhost:3306/mysql?useUnicode=true&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8";
String user="root";
String password="149636";
Connection conn= DriverManager.getConnection(url,user,password);
// 这里我们输出数据库连接对象看看是这样的,com.mysql.cj.jdbc.ConnectionImpl@531be3c5。
System.out.print("数据库连接对象="+conn);
// 3.获取操作库对象
Statement stat=conn.createStatement();
// 4.执行sql
String sql="insert into student(id,username,password) values(2,'张三','123')";
// 专门执行DML语句的(insert,delete,update),返回值是影响数据库中的记录条数
int count=stat.executeUpdate(sql);
System.out.print(count==1?"保存成功":"保存失败");
// 6.释放资源,为了保证资源一定释放,在finally语句块中关闭资源,并且要遵循从小到大依次关闭(比如这里要先关闭stat,再关闭conn)
// 再分别对其trycatch
finally{
try {
if(stat!=null){
stat.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
整体代码:
package com.jdbc;
import java.sql.*;
public class text01 {
public static void main(String[] args) {
Statement stat=null;
Connection conn=null;
try {
//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 第二步:获取连接
String url="jdbc:mysql://localhost:3306/test01?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8";
String user="root";
String password="149636";
conn= DriverManager.getConnection(url,user,password);
// 这里我们输出数据库连接对象看看是这样的,com.mysql.cj.jdbc.ConnectionImpl@531be3c5。
System.out.print("数据库连接对象="+conn);
// 3.获取操作库对象
stat=conn.createStatement();
// 4.执行sql
String sql="insert into student(id,username,password) values(2,'张三','123')";
// 专门执行DML语句的(insert,delete,update),返回值是影响数据库中的记录条数
int count=stat.executeUpdate(sql);
System.out.print(count==1?"保存成功":"保存失败");
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}
// 6.释放资源,为了保证资源一定释放,在finally语句块中关闭资源,并且要遵循从小到大依次关闭(比如这里要先关闭stat,再关闭conn
// 再分别对其trycatch
finally{
try {
if(stat!=null){
stat.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if(conn!=null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
注意,因为我这里执行的mysql语句是插入语句,所以不需要执行第五步。