JDBC
Java DataBase Connectivity
将java代码和数据库进行连接
可以为多种关系型数据库DBMS提供统一的访问方式,目的就是用java来操作数据库
java -> JDBC DriverManager(统一管理器) -> 驱动 -> 数据库
不同的数据库需要不同的驱动来操作,JDBC DriverManager可以通过统一操作不同的驱动来操作不同的数据库。
接口、方法、类:API
jdbc通过API来操作驱动

JDBC DriverManager
管理不同的数据库驱动

数据库驱动(jar包)
驱动是由数据库相应厂商提供的(第三方公司提供)
作用:连接/直接操作数据库

JDBC API
提供各种操作访问接口(增删改查)
Connection
Statement
PreparedStatement
ResultSet

主要功能:
1、与数据库建立链接
2、对数据库发送SQL(增删改查)语句
3、返回数据库的处理结果

具体是通过以下方法实现
DriverMan:管理JDBC驱动
Connection:连接
Statement(PreparedStatement):增删改查
CallableStatement:调用数据库中的存储过程/存储函数
Result:返回的结果集

JDBC访问数据库的具体步骤
1、导入驱动,加载具体的驱动类
2、与数据库建立链接
3、发送sql,执行
4、(查询)处理结果集

数据库驱动
最常见的关系型数据库及对应驱动jar:
Oracle ——ojdbc-x.jar
MySQL——mysql-connector-java-x.jar
SqlServer——sqljdbc-x.jar

数据库对应的具体驱动类:
Oracle——oracle.jdbc.OracleDriver
MySQL——com.mysql.jdbc.Driver
SqlServer——com.microsoft.sqlserver.jdbc.SQLServerDriver

创建数据库连接需要三个要素;
数据库名&IP地址端口号:连接字符串
用户名
密码

各数据库对应的连接字符串
Oracle:
jdbc:oracle:thin:@localhost:1521:ORCL
MySQL:
jdbc:mysql://localhost:3306/数据库实例名
SqlServer:
jdbc:microsoft:sqlserver:localhost:1433;databasename=数据库实例名

获取连接对象通过DriverManager

示例代码:

public class Test {
	// 数据库连接字符串
	private static final String URL = "jdbc:mysql://127.0.0.1:3306/af_school?useUnicode=true&characterEncoding=UTF-8";
	private static final String USERNAME = "root";
	private static final String PASSWORD = "123456";

	public static void update() {
		Connection connection = null;
		Statement stmt = null;
		try {
			// a、导入驱动,加载具体的驱动类
			Class.forName("com.mysql.jdbc.Driver");
			// b、与数据库建立连接
			connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
			// c、发送sql,执行(增删改、查)
			stmt = connection.createStatement();
			String sql = "INSERT INTO student(`id`,`name`,`birthday`)" + "VALUES('20200023','BinBin','2001-09-09')";

			// 返回值表示增删改几条数据
			int count = stmt.executeUpdate(sql); // 执行sql语句
			// d、处理结果
			if (count > 0) {
				System.out.println("操作成功!");
			}
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}catch (SQLException e) {
			e.printStackTrace();
		}catch (Exception e) {
			e.printStackTrace();
		}
		
		finally {
			// 关闭数据库连接
			try {
				// 对象.方法,如果对象为空,会报空指针
				stmt.close();
				connection.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String args[]) {
		update();
	}
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐