什么是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语句
代码实现:
//需要创建statement
Statement 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);
//定义sql
String sql = "select * from t_dept";
//需要创建statement
Statement 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);
//定义sql
String sql = "update t_dept set leader='张总' where did=19";
//需要创建statement
Statement 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);
//定义sql
String sql = "delete form t_dept where did=18";
//需要创建statement
Statement 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);
//定义sql
String sql = "select * from t_dept";
//需要创建statement
Statement 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);
//定义sql
String sql = "insert into t_dept values(null,'乌克兰分部','基辅','陈总')";
//需要创建statement
Statement 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();
}
}