小知识:JDBC是一个注册了商标的术语,而并非Java Database Connectivity 的首字母缩写。对它命名体现了对ODBC的致敬,后者是微软开创的标准数据库API,并因此并入了SQL标准中。
—摘自 《Java 核心技术 卷Ⅱ》
JDBC操作步骤
导入驱动程序JAR文件
eclipse中的导入jar包步骤
idea中设置
在idea设置中需要设置数据库的serverTimeZone为gmt(没有报错不需要设置)
注册驱动器
许多JDBC的JAR文件会自动注册驱动器类,这种情况,可以直接跳过本次操作。在mysql中,需要手动注册驱动器。
在java程序中加载驱动器
Class.forName("com.mysql.cj.jdbc.Driver");
连接数据库
数据库的连接需要数据库URL,数据库用户名和密码
JDBC URL的语法
jdbc:数据库类型:其他参数
其他参数的格式随所用的数据库类型不同而不同
在Java程序中我们可以这样获取数据库连接
static String URL = "jdbc:mysql://127.0.0.1:3306/COREJAVA?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&autoReconnect=true";
static final String USER = "root";
static final String PASSWORD = "ht123456";
static Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
驱动管理器会遍历所有注册过的驱动程序,以便找到一个能够使用数据库URL中的子协议的驱动程序。
代码展示
package com.ht.java;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @Description
* @author ht Email:lighththu@qq.com
* @version
* @date 2021年1月17日下午11:06:01
*/
public class JDBCTest {
private static String URL = "jdbc:mysql://127.0.0.1:3306/jdbctest?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT&autoReconnect=true";
private static final String USER = "root";
private static final String PASSWORD = "ht123456";
private static Connection conn = null;
public static void main(String[] args) {
runTest();
}
public static void runTest(){
try {
getConnection();
Statement stat = conn.createStatement();
//创建Greetings表
stat.executeUpdate("CREATE TABLE Greetings(Message CHAR(20))");
//在表中插入记录
stat.executeUpdate("INSERT INTO Greetings VALUES ('hello world')");
//查找表中所有记录
ResultSet result = stat.executeQuery("SELECT * FROM Greetings");
if(result.next()){
//打印表中记录
System.out.println(result.getString(1));
}
//删除Greetings表
stat.executeUpdate("DROP TABLE Greetings");
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
//获取数据库连接
public static Connection getConnection(){
try {
//加载驱动器
Class.forName("com.mysql.cj.jdbc.Driver");
try {
//获取连接
conn = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException throwables) {
throwables.printStackTrace();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return conn;
}
}