JDBC
JDBC:java database connectivity 一套操作数据库的标准规范(可以理解为数据库与java之间的桥梁)
与数据库驱动的关系: 接口与实现的关系
核心对象:
- Drivermanager:创建连接
- Connection:一个连接
- Statement:操作sql语句,并返回相应结果的对象
- ResultSet:结果集(客户端用来存储表数据的对象)
创建连接:
package JDBC.conn;
import java.sql.Connection;
import java.sql.DriverManager;
public class ConnectionClass {
public static void main(String[] args) throws Exception {
//1.加载驱动
//把com.mysql.jdbc.Driver这份字节码加载到JVM中
//当把一份字节码加载到JVM中时,就会执行字节码中的静态代码块
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取连接对象
//url 数据库地址
String url = "jdbc:mysql://localhost:3306/jdbc_db?serverTimezone=GMT";
//serverTimeZone=GMT是由于版本问题的添加项
//用户名
String user = "root";
//password
String password ="******";
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
}
CRUD操作
步骤:
- 加载驱动
- 连接数据库
- 创建sql语句
- 执行sql语句
- 释放资源
package JDBC.DML;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class InsertClass {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/jdbc_db?serverTimezone=GMT";
String user = "root";
String pwd = "1234";
Connection conn = null;
Statement st = null;
try {
//1.加载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//2.创建连接
conn = DriverManager.getConnection(url, user, pwd);
//3.创建sql语句
String sql = "insert into stu values(1,'pony',20)";
//4.执行sql语句
st = conn.createStatement();
int row = st.executeUpdate(sql);
System.out.println(row);
}catch(Exception e) {
e.printStackTrace();
}finally {
//5.释放资源
if(st!=null) {
try{
st.close();
}catch(Exception e) {
e.printStackTrace();
}
}
if(conn!=null) {
try {
conn.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
}
结果集
DQL查询返回的是一个虚拟结果集对象ResultSet。通过调用ResultSet对象的相关方法即可实先对结果集的访问。
示例:
ResultSet res = st.executeQuery(sql);
if(res.next()) {
/*int count = res.getInt(1);*/
int count = res.getInt("total");
System.out.println("count = "+ count);
}