网站首页 > 技术文章 正文
Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标,我们通常说的JDBC是面向关系型数据库的。
在视频中将详细讲解Java语言如何连接数据库,对数据库中的数据进行增删改查操作,适合于已经学习过Java编程基础以及数据库。
阐述了接口在开发中的真正作用,JDBC规范制定的背景,JDBC编程六部曲,JDBC事务,JDBC批处理,SQL注入,行级锁等。
搭配视频观看效果更佳~~
https://www.ixigua.com/6772330467652796931
什么是JDBC?
JDBC就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。
JDBC原理
早期SUN公司的天才们想编写一套可以连接天下所有数据库的API,但是当他们刚刚开始时就发现这是不可完成的任务,因为各个厂商的数据库服务器差异太大了。后来SUN开始与数据库厂商们讨论,最终得出的结论是,由SUN提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,然后各个数据库厂商会遵循SUN的规范提供一套访问自己公司的数据库服务器的API出现。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的,可以访问自己数据库的API被称之为驱动!
JDBC本质上是什么呢?
java.sql.*;这个包下都是JDBC的接口,SUN公司制定的!
JDBC是体现“接口作用”的非常经典的例子。
JDBC降低了耦合度,提高了扩展力。
对于java程序员来说,不需要关心数据库是哪个品牌。只要面向JDBC接口编程就行!
JDBC整个程序的结构当中有三波人?
第一波:SUN公司,负责制定JDBC接口。这些接口已经写好了,在java.sql.*;
第二波:java.sql.*下面的所有接口都要有实现类,这些实现类是数据库厂家编写的。
我们连接的是mysql数据库,mysql数据库厂家的实现类在哪里呢?
mysql-connector-java-5.1.23-bin.jar
jar包中很多.class字节码文件,这是mysql数据库厂家写的接口实现!
注意:如果连接的是oracle数据库,你需要从网上下载oracle的jar包。
mysql-connector-java-5.1.23-bin.jar 这个jar包有一个专业的术语,大家记住就行:mysql的驱动。如果是oracle的jar,被称为oracle的驱动。
第三波:我们java程序员,面向JDBC接口写代码就行!
JDBC开发之前的准备工作?
mysql的驱动jar包,需要配置到classpath当中吗?
mysql-connector-java-5.1.23-bin.jar里是字节码,是class文件。
Java虚拟机的类加载器会去加载class文件,类加载器怎么能够找到这些class文件呢?
classpath没有配置的情况下,默认从当前路径下加载class。
classpath如果配置死了,例如:classpath=D:\abc,则表示固定只从d:\abc目录下找class
classpath=.;D:\course\04-JDBC\resources\MySql Connector Java 5.1.23\mysql-connector-java-5.1.23-bin.jar
. 代表什么?当前路径。
以上的classpath什么意思?
类加载器从当前路径下加载class,如果当前路径下没找到,则去D:\course\04-JDBC\resources\MySql Connector Java 5.1.23\mysql-connector-java-5.1.23-bin.jar找class文件。
jar包需要解压吗?
不需要解压,java虚拟机的类加载器有这个能力找到class文件。
实现一个登录功能
第一步:提供一个输入的界面,可以让用户输入用户名和密码。
第二步:底层数据库当中需要有一张用户表,用户表中存储了用户信息。
第三步:当java程序接收到用户名和密码的时候,连接数据库验证用户名和密码。
验证通过,表示登录成功,验证失败,表示登录失败。
Statement主要是进行sql语句的拼接。PreparedStatement可以避免sql注入,主要进行传值。
JDBC的事务问题
conn.setAutoCommit(false);
conn.commit();
conn.rollback();
猜你喜欢
- 2024-11-12 JDK9模块化知识和规则入门 jdk9 module
- 2024-11-12 如何有效开发Java 如何有效开发地理教材
- 2024-11-12 BI工具入门:如何做关系数据源的连接?
- 2024-11-12 对另外网段的渗透测试 对网络开展渗透性测试
- 2024-11-12 一些可以显著提高大型 Java 项目启动速度的尝试
- 2024-11-12 为什么Python通过Jar包的方式不能同时链接多个异构库?
- 2024-11-12 powerdesigner连接Oracle逆向生成pdm文件。
- 2024-11-12 「转」jar包冲突漏洞,同一份代码有的主机运行正常,有的失败
- 2024-11-12 openjdk编译缺jfxrt.jar的坑货 openjdk没有javac
- 2024-11-12 说一说 JPA + Oracle 项目启动时遇到一大坑,你碰到过吗?
你 发表评论:
欢迎- 614℃几个Oracle空值处理函数 oracle处理null值的函数
- 605℃Oracle分析函数之Lag和Lead()使用
- 594℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 591℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 585℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 579℃【数据统计分析】详解Oracle分组函数之CUBE
- 568℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 559℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)