在这里云源想要它对你的帮助容易学习 IT”。
嗨,你今天过得怎么样?
这个世界上一定有另一个我。
做我不敢做的事。
过我想过的生活。
JDBC(J**A Database Connectivity)是一个用于执行 SQL 语句的 J**A API,它是 J**A 和数据库之间的桥梁,是一个规范而不是一个实现,可以交给数据库来执行 SQL 语句。
在信息时代,数据库已成为存储和管理数据的重要工具。 作为一种广泛使用的编程语言,J**a 与数据库的交互尤为重要。 JDBC就是为了解决这个问题而诞生的。
通过JDBC,我们可以在J**A程序中方便地执行SQL语句,实现对数据库的增删改查操作。 今天我们要谈谈JDBC的概念。
概念:
JDBC (J**A 数据库连接):J**A 数据库连接技术。
具体来说,就是通过J**A连接各种数据库,对表中的数据进行增删改查等操作的技术。 如图所示
从本质上讲,JDBC 与图形客户端执行相同的操作,即将 SQL 操作发送到数据库。 不同的是,图形界面中的操作是图形化的、愚蠢的,而JDBC需要编码(这个时候不要想JDBC怎么写,也不要想它有多难)才能完成图形化操作的效果。
也就是说,JDBC本质上是一种发送SQL操作数据库的客户端技术,但需要通过J**A编码来完成。
它的作用:
通过JDBC技术与数据库交互,以J**A语言向数据库发送SQL语句,可以对数据进行增删减、修改、查询等操作,更高效、更安全地管理数据。
JDBC 是数据库和 J**A** 之间的桥梁(链接)。
JDBC由一组用J**A语言编写的类和接口组成,主要包括驱动程序管理、连接接口、语句接口和结果集接口。
连接接口
定义:JDBC程序中用来表示数据库的连接是数据库编程中最重要的对象,客户端和数据库之间的所有交互都是通过连接对象完成的。
connection conn = drivermanager.getconnection(url,user,password);常用方法:
createstatement() 为要发送到数据库的 SQL 语句创建一个语句对象。
PrepareStatement(SQL):创建一个 preparesatement 对象,用于将预编译的 SQL 发送到数据库。
preparecall(sql):创建执行存储过程的 callablestatement 对象。 (常用)。
setAutoCommit(布尔值自动提交):指定事务是否自动提交。
关闭自动提交事务。commit() 在链接上提交事务。setautocommit(false);
关闭后,您需要手动打开提交事务。
rollback() 回滚此链接上的事务。
语句接口
Statement:由 CreateStatement 创建,用于发送简单的 SQL 语句(无参数)。
statement st = conn.createstatement();PreparedStatement:继承自 Statement API,是 Statement 的子类,可以发送带参数的 SQL 语句。 效率更高,可以防止SQL注入,所以推荐使用。
preparedstatement ps = conn.prepare语句(sql);PreparedStatement的优点:
语句导致数据库频繁编译SQL语句,可能导致数据库缓冲区溢出。 PreparedStatement可以对SQL语句进行预编译,提高数据库的执行效率。
此外,PreperedStatement 允许在 SQL 中使用占位符替换参数,简化了 SQL 语句的编写,避免了 SQL 注入的问题。
CallableStatement:继承自 PrepareCall 方法创建的 PreparedStatement 接口,用于调用存储过程。
常用方法:
ExecuteQuery(String SQL):用于向数据发送查询语句。
ExecuteUpdate(String SQL):用于向数据库发送INSERT、UPDATE或DELETE语句。
execute(string sql):用于向数据库发送任意SQL语句。
Addbatch(String SQL):将多个SQL语句放入一个批处理中。
executebatch():向数据库发送一批SQL语句执行。
ResultSet 接口
ResultSet:SQL语句的执行结果。
当 ResultSet 封装执行结果时,它采用与 ** 类似的方法,ResultSet 对象维护一个指向 ** 数据行的游标,最初,该游标称为 ResultSet。 在第一行之前next() 方法,可以将光标指向特定的数据行,并调用该方法获取该行的数据。
常用方法:
resultset.next() 到下一行;
resultset.previous() 添加到上一行。
resultset.absolute(int row):移动到指定的行。
resultset.beforeFirst():移动结果集的前面。
resultset.afterlast():移动结果集的最后部。
JDBC的工作原理可以分解为以下步骤:
1.加载并注册 JDBC 驱动程序:
这是建立数据库连接的第一步,我们需要先加载 JDBC 驱动,然后通过 DriverManager 的 RegisterDriver 方法注册。
2.建立数据库连接:
使用 DriverManager 的 getconnection 方法,我们可以建立与数据库的连接。
3.创建语句对象:
使用连接对象的 createstatement 方法,我们可以创建一个用于执行 SQL 语句的语句对象。
4.执行 SQL 语句:
使用 Statement 对象的 ExecuteQuery 或 ExecuteUpdate 方法,我们可以执行 SQL 语句、获取结果或更新数据库。
结果:
对于查询操作,我们需要处理结果集结果集;对于更新操作,我们不需要处理结果。
6.关闭资源:
最后,我们需要关闭开放资源,包括结果集、语句和连接。
让我们看一个如何使用JDBC的简单示例。 假设我们想查询为"students"表中所有数据:
1.在pom中将MySQL驱动程序文件引入XML中
mysqlmysql-connector-j**a2.加载驱动程序类
class.forname("com.mysql.cj.jdbc.driver");3.在 J**A 和数据库之间建立连接通道
string url = "jdbc:mydql://locallhost:3306/test";test 是数据库的名称。4.创建一个负责“交付订单”的“先驱”目标string user = "root";
string password = "root";
connection conn = drivermanager.getconnection(url,user,password);
string sql ="insert into emp values(null,"醒来","歌手",7956,now(),79429,6799,30,1)";5.接收结果集(只有查询具有结果集)。preparestement ps = conn.preparestement(sql);
int row = ps.excuteupdate();保留命令由 mysql 运行。6.关闭连接通道system.out.println(row + "线路受到影响!");
ps.close();conn.close();
如何传递参数
键盘分配。连接字符串private static scanner scan;
static{
scan = new scanner(system.in);
占位符方法 '?
使用占位符的好处:
可以有效避免SQL注入问题。
可以根据复制时的数据类型自动决定引入"
删除
物理删除
墓碑
查询操作
全面询价
按 ID 搜索
面向对象是指将多个功能查询划分为多个包,用于添加、删除、修改和查询数据库 (CRUD) 的过程。
db 包
DB 包中只有一个类>DBmanager 类,该类的主要作用是管理数据的连接。
Bean 包角色
一般对应数据库中的表,bean 包中的类一般和表名一样,首字母大写,驼峰名。
DAO 包角色
DAO 是一个数据访问对象,一般以 Bean 包的类名为前缀,以 DAO 结尾,DAO 负责执行 CRUD 操作,而 DAO 类负责表的 CRUD,也可以说是 Bean 类的 CRUD(增、删、改、查询)。
多表查询
以上是JDBC的基本概述,JDBC是一项看似复杂的技术,但实际上是一个非常实用的工具。
只要掌握了窍门,就可以轻松处理和管理数据。 无论您是经验丰富的程序员还是刚刚入门,我都强烈建议您学习 习 并使用 JDBC。 相信我,当你掌握JDBC时,你会发现它给你的工作和习带来了极大的便利。