一、定义
JDBC:Java DataBase Connectivity 可以为多种关系型数据库DBMS提供统一的访问方式,目的就是用Java来操作数据库
下面通过一个流程图简单了解他的运行过程
二、JDBC API主要功能
具体是通过以下类/接口实现:
- DriverManager :管理jdbc驱动
- Connection: 连接
- Statement (PreparedStatement) :增删改查
- CallableStatement :调用数据库中的存储过程/存储函数
- Result :返回的结果集
三、jdbc访问数据库的具体步骤
- 导入驱动,加载具体的驱动类
- 与数据库建立连接
- 发送sq1,执行
- 处理结果集( 查询)
数据库驱动有以下三种
数据库驱动 | 驱动jar | 具体驱动类 | 连接字符串 |
---|---|---|---|
Oracl | ojdbc-x. jar | oracle. jdbc. Oracl eDriver | jdbc: oracle: thin: @localhost: 1521:ORCL |
MySQL | mysql-connector- java -x. jar | com. mysql. jdbc. Driver | jdbc:mysql://localhost : 3306/数据库实例名 |
SqlServer | sql jdbc- -x. jar | com. microsoft. sqlserver. jdbc. SQLServerDriver | jdbc:microsoft:sqlserver: localhost: 1433 ;databasename=数据库实例名 |
需要注意的是,mysql8以后的版本,具体驱动类为com. mysql.cj. jdbc. Driver
IDEA通过JDBC连接数据库
- 首先去maven库下载mysqljar包:
https://mvnrepository.com/artifact/mysql/mysql-connector-java
最好是下载对应你mysql版本的
- IDEA创建一个JAVA项目并将刚刚下载的jar包导进去
导包的方法为:按住ctrl+shift+slt+s,点击+号,选择java,将你刚刚下载的jar包导进去,apply。
创建一个类,然后下面是具体代码
import javax.swing.*;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCDemo {
/*practice 是我的数据库实例名
root 和 123456 是我的数据库账号密码*/
private static final String URL ="jdbc:mysql://localhost : 3306/practice?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT";
private static final String USERNAME = "root" ;
private static final String PWD="123456";
public static void update() {//增删改查
Statement stmt = null;
Connection connection =null;
try {
// a.导入驱动,加载躯体驱动类
Class.forName("com.mysql.cj.jdbc.Driver");
//b.与数据库建立连接
connection= DriverManager.getConnection(URL, USERNAME, PWD);
//c.发送sql,执行(增删改、查)
stmt= connection.createStatement();
String sql = "insert into student values(5,'aa',10,80)";
//执行SQL
int count = stmt.executeUpdate(sql);
//处理结果集
if (count > 0) {
System.out.println("操作成功");
}
}
catch (ClassNotFoundException e){
e.printStackTrace();
}
catch (SQLException e){
e.printStackTrace();
}
catch (Exception e){
e.printStackTrace();
}
finally {
try {
if (stmt!=null)stmt.close();
if (connection!=null) connection.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
public static void main(String[] args) {
update();
}
}
运行结果