什么是jdbc

JDBC(Java Database Connectivity)是Java编程语言中用于与数据库进行交互的标准API。它提供了一组接口和类,允许开发人员通过Java程序连接到数据库,并执行各种数据库操作。
JDBC的主要功能包括:
1. 建立数据库连接:通过JDBC驱动程序,可以与各种数据库建立连接,如MySQL、Oracle、SQL Server等。
2. 执行SQL语句:可以使用JDBC执行各种SQL语句,如查询数据、插入数据、更新数据和删除数据等。
3. 处理事务:JDBC支持事务处理,可以通过JDBC的事务管理功能来确保数据库操作的一致性和完整性。
4. 处理结果集:JDBC可以获取数据库查询的结果集,并提供方法来处理和操作结果集中的数据。
5. 处理元数据:JDBC提供了获取数据库结构和信息的方法,开发人员可以使用这些方法来获取表、列、索引等数据库元数据。
使用JDBC进行数据库操作的一般步骤如下:
1. 加载并注册数据库驱动程序。
2. 建立数据库连接。
3. 创建一个Statement对象或PreparedStatement对象,用于执行SQL语句。
4. 执行SQL语句,并获取结果集(如果有)。
5. 处理结果集中的数据。
6. 关闭数据库连接和相关资源。
通过JDBC,开发人员可以在Java应用程序中方便地与数据库进行交互,实现数据的存储、检索和更新等操作。

jdbc可以实现的具体操作

下面将是一段jdbc实现数据库基本操作的示例

实现思路:首先我们需要注册驱动-反射去加载jar包

实现类为DriverManager类,运用该类的方法registerDriver完成注册

代码实现:

Class.forName("com.mysql.jdbc.Driver");

然后我们需要使用连接类获取连接对象,当然地址则为数据库的实现地址,本人端口为3306(端口可在数据库–连接中查看)。初始账户为root,简易密码也设置成root方便记忆

代码实现:

Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/summer-camp2023?characterEncoding=utf8", "root", "root");System.out.println(con);

接着定义sql语句。sql语句的不同则实现效果不同,sql语句可以帮助实现增删改查等基本操作,下图为更新语句sql

代码实现:

String sql = "update t_dept set leader='张总' where did=19";

定义完成之后,我们需要创建一个语句段statement用于执行sql语句

代码实现:

 //需要创建statementStatement statement = con.createStatement();//statement执行sql,返回插入了几行int i = statement.executeUpdate(sql);System.out.println("向数据库t_dept表中修改了" + i + "行数据");

最后关闭连接和语句段

代码实现:

//关闭资源statement.close();con.close();

如法炮制,增删改查基本操作都能实现。通过修改sql语句实现功能

(tips:查询功能需要处理结果集,因为要查询所有数据,推荐使用while循环持续遍历输出)

查询结果代码实现:

private static void f2 () throws Exception{//注册驱动-用反射去加载jar包中com.jdbc.Driver这个类中的 public Driver() throws SQLException {};Class.forName("com.mysql.jdbc.Driver");//获取连接对象Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/summer-camp2023?characterEncoding=utf8", "root", "root");System.out.println(con);//定义sqlString sql = "select * from t_dept";//需要创建statementStatement statement = con.createStatement();//statement执行sql,返回结果集ResultSet rs= statement.executeQuery(sql);//解析rs while(rs.next()) { int did = rs.getInt("did"); String dname = rs.getString("dname"); String dlocation = rs.getString("dlocation"); String leader = rs.getString("leader"); System.out.println(did + "--" + dname + "--" + dlocation + "--" + leader); //关闭资源 statement.close(); con.close(); }}

最后附上总代码

package com.hp;import java.sql.*;import java.sql.ResultSet;/** 代码提示 生成 快捷键 alt+enter* *//*statement有两个常用方法* 1.* */public class Jdbc01 {private static void f4 () throws Exception{//注册驱动-用反射去加载jar包中com.jdbc.Driver这个类中的 public Driver() throws SQLException {};Class.forName("com.mysql.jdbc.Driver");//获取连接对象Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/summer-camp2023?characterEncoding=utf8", "root", "root");System.out.println(con);//定义sqlString sql = "update t_dept set leader='张总' where did=19";//需要创建statementStatement statement = con.createStatement();//statement执行sql,返回插入了几行int i = statement.executeUpdate(sql);System.out.println("向数据库t_dept表中修改了" + i + "行数据");//关闭资源statement.close();con.close();}private static void f3 () throws Exception {//注册驱动-用反射去加载jar包中com.jdbc.Driver这个类中的 public Driver() throws SQLException {};Class.forName("com.mysql.jdbc.Driver");//获取连接对象Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/summer-camp2023?characterEncoding=utf8", "root", "root");System.out.println(con);//定义sqlString sql = "delete form t_dept where did=18";//需要创建statementStatement statement = con.createStatement();//statement执行sql,返回插入了几行int i = statement.executeUpdate(sql);System.out.println("向数据库t_dept表中删除了" + i + "行数据");//关闭资源statement.close();con.close();}private static void f2 () throws Exception{//注册驱动-用反射去加载jar包中com.jdbc.Driver这个类中的 public Driver() throws SQLException {};Class.forName("com.mysql.jdbc.Driver");//获取连接对象Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/summer-camp2023?characterEncoding=utf8", "root", "root");System.out.println(con);//定义sqlString sql = "select * from t_dept";//需要创建statementStatement statement = con.createStatement();//statement执行sql,返回结果集ResultSet rs= statement.executeQuery(sql);//解析rs while(rs.next()) { int did = rs.getInt("did"); String dname = rs.getString("dname"); String dlocation = rs.getString("dlocation"); String leader = rs.getString("leader"); System.out.println(did + "--" + dname + "--" + dlocation + "--" + leader); //关闭资源 statement.close(); con.close(); }}private static void f1 () throws Exception {//注册驱动-用反射去加载jar包中com.jdbc.Driver这个类中的 public Driver() throws SQLException {};Class.forName("com.mysql.jdbc.Driver");//获取连接对象Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/summer-camp2023?characterEncoding=utf8", "root", "root");System.out.println(con);//定义sqlString sql = "insert into t_dept values(null,'乌克兰分部','基辅','陈总')";//需要创建statementStatement statement = con.createStatement();//statement执行sql,返回插入了几行int i = statement.executeUpdate(sql);System.out.println("向数据库t_dept表中插入了" + i + "行数据");//关闭资源statement.close();con.close();}public static void main(String[] args) throws Exception {f4();}}