声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。
JDBC
什么是jdbc,Java连接数据库的API。Jdbc全称:Java DataBase Connection Java数据库连接。什么叫Java数据库连接API呢?
因为jdbc是Java连接数据库的规范制定,jdbc是规范。而实现类则由各数据库厂商来支持。来实现jdbc API。将麻烦的事情交给数据库厂商去完成。
所以jdbc是规范,不是实现。是Java连接数据库的规范。每个数据库都不一样,就需要找每个即熟悉自己的数据库,又熟悉Java的人。所以这项工作由自己来做就太麻烦了。
这jdbc API有聚集哪些功能呢?这些功能都聚集在一个个的接口上。我们不操作数据库厂商的直接的实现子类,而是由接口去获得操作对象去,方法什么的都在接口上。我们调用接口
有哪些接口呢?
1:驱动管理员->创建->
2:连接对象->创建
3:[SQL执行对象,预处理执行对象,存储过程调用对象] ->含有
4:记录集对象,记录集结构对象
代码:
找数据库驱动,搜索对应的jar包,jar包是连接数据库的驱动
驱动包已经找到了
通过driveMangger创建连接对象:
driveMangger.getConnection获得数据库连接对象
驱动管理员是管理驱动包的,我们已经找到驱动包了,我们找管理员要连接对象。管理员与驱动之间如何洽谈的我们不关心。
管理员得到连接对象,管理员就需要与驱动对话,驱动要求要有参数:URL,user,password
User与password是拿去连接数据库的身份验证,而URL是告诉驱动你的连接目标在哪里
而URL包含3个部分:协议,ip+port,库名字
协议是告诉驱动管理员,我要加载这个数据库驱动,协议的规范是jdbc:驱动命名。最后驱动管理员会找到MySQL的驱动类,因为我们引入jar包了。如果这个名字我们乱填,驱动找不到,会报错说找不到驱动。
剩下的参数连接是数据库的要求参数了,连接对象,身份验证。3个参数,分成2个部分,一个是告诉驱动管理员去加载哪个驱动。一个是告诉驱动带着参数连接到指定目标。
在满足有驱动包的情况下,从驱动管理员获得数据库连接对象。驱动管理员根据URL的协议找到驱动包,驱动包连接数据库。因为实现类都在驱动身上。Jdbc是规范。
拿到了连接对象,就等于是得到了Java与数据库的连接对象,这个连接对象可以帮我们去执行SQL语句。
执行SQL:
拼接SQL语句,从Connection创建出Statement对象,Statement是负责执行处理SQL语句的。SQL语句分2类,更新语句与查询语句,更新语句包括update,insert,delete
返回int影响的执行行数:
记录已经被插入到数据库之中
不用了关闭连接对象,jdbc的实现者,一般是采用tcp不断开的安全的传输连接。连接比较耗时,并且也会占系统资源。所以不用了要关闭连接对象。
Jdbc Java数据库连接规范,Java出规范,厂商做实现,我们只需要掌握指定规范的接口即可。实现类由厂商去实现。我们不需要也不用直接操作实现类,由接口获得实现类的接口并操作。
在以前,我们在操作driveMangger驱动管理员对象时,还需要先加一句话,Class.forName(“com.mysql.jdbc.Drive”)我们需要先加载这个drive类
当我们加载哪个类时,这个类中有一个静态块,当我们去触碰这个静态块时,drive就将自己的驱动注册到driveMangger之中。我们在从driveMangger拿连接对象
可以不使用forName,可以实例化可以调用成员,只要触碰到类,则第一次加载静态块,将自己注册到驱动管理员之中。我们找驱动管理员时,驱动管理员就根据URL的协议与自己容器中的驱动类做比较,假设协议jdbc:mysql,我们forname加载mysql的drive,则驱动管理员根据协议找到自己容器中的MySQLDrive,找到了我们就能操作了。
过程是这样的,我们加载drive,drive静态块将自己注册到驱动管理员中,驱动管理员根据协议与自己容器中的驱动类去判断有没有你要连接的驱动类。如果有则可以操作了,没有就报错没有找到这个驱动。
现在不需要写forname了,直接就自己自动挂载到驱动管理员之中了。
打开jar包,找到meta-inf包,找到service服务包,里面有个driver说明,里面记录了驱动drive类。当我们运行工程时,就自己将这个类加载起来了,不需要我们在手动加载了。驱动已经可以自动加载在类上了。
Java连接MySQL数据,还可以这样写:
Jdbc:mysql:///库、中间/表示本地地址与3306默认端口
Jdbc:mysql:localhost:3306/库
jdbc:mysql:localhost:3306/库?characterEncoding=utf-8还可以传递参数
当然MySQL支持这种写法,不表示所有数据库连接驱动都支持,每个驱动可能实现都不一样
相关推荐
【标题】"求精要诀——JavaEE编程开发案例精讲 源代码(8-12)"涉及的是JavaEE平台上的高级编程实践,主要涵盖第8至12章的关键知识点。JavaEE,全称Java Platform, Enterprise Edition,是Java语言在企业级应用开发...
《JavaEE开发技术与案例教程——刘彦君 课件》是刘彦君主编的一份详尽的教学资源,旨在深入浅出地介绍JavaEE技术及其实际应用。JavaEE(Java Platform, Enterprise Edition)是Java平台在企业级开发中的标准,主要...
在"JavaEE高级工程师I培训——框架核心技术Struts.Hibernate.Spring"课程中,你将学习到如何有效地利用这三个框架,包括但不限于以下内容: 1. Struts框架的架构设计和工作原理 2. 创建和配置Struts2应用,包括...
这样的项目旨在让学生在实践中掌握Java编程语言以及相关的企业级开发技能,如Servlet、JSP、JDBC、MVC模式、Spring框架等。 首先,我们来探讨JavaEE技术栈。JavaEE,即Java企业版,是用于构建分布式、多层的企业级...
【JavaEE项目——手机销售公司】是一个基于JavaEE技术栈的Web应用程序,旨在模拟和管理一个手机销售公司的业务流程。这个项目涵盖了多个重要的IT知识点,包括但不限于以下几点: 1. **JavaEE架构**:JavaEE(Java ...
在这个JavaEE第二次上机作业——软院找人的项目中,我们将深入探讨如何实现一个高效且用户友好的分页系统。 一、分页原理 分页的基本原理是将大数据集分割成多个小部分,每个部分称为一页,用户可以逐页浏览。通常...
在本学习笔记中,我们将深入探讨JavaEE中的Spring框架,这是一个强大的、全面的企业级应用程序开发框架,它简化了Java开发并提供了丰富的功能。Spring的核心特性包括依赖注入(DI)、面向切面编程(AOP)以及对Java ...
JavaEE通过JDBC(Java Database Connectivity)提供了一种与各种数据库进行交互的标准接口。Day19可能涉及了连接数据库、执行SQL语句、处理结果集以及事务管理等JDBC基本操作。 4. **EJB(Enterprise JavaBeans)**...
可能讲解了Core、JDBC、XML等不同功能的标签使用。 4. **第4章:MVC框架——Servlet+JSP+JavaBean** - MVC(Model-View-Controller)模式:JavaEE中常见的设计模式,用于分离业务逻辑、数据模型和用户界面。此章...
在本文中,我们将深入探讨如何使用JavaEE与百度AI的...尽管页面设计可能简单,但核心功能——即准确、安全地通过面部识别验证用户身份——已经实现。随着技术的进步,这种无密码的登录方式可能会成为未来的一个趋势。
在本项目“Struts宿舍管理系统”中,我们主要探讨的是如何使用JavaEE的核心框架之一——Struts来实现一个针对学生和管理员的宿舍管理应用。 Struts是一个开源的MVC(Model-View-Controller)框架,它使得开发者能够...
描述中提到“基于JavaEE的职工薪资管理系统使用MyEclipse与MySQL”,这表明这个项目或教程是关于如何利用JavaEE技术来构建一个实际的管理应用——职工薪资管理系统。MyEclipse是一款集成开发环境(IDE),专门用于...
2. **JDBC与数据库交互**:Java Database Connectivity (JDBC) 是JavaEE中的标准API,用于连接和操作数据库。系统中可能包含了数据库设计,如参赛者信息、比赛项目、成绩等,这些数据的存储和查询都需要通过JDBC来...
此外,它可能会涵盖Spring的核心特性——依赖注入,这是Spring最著名的特性之一,通过DI,我们可以轻松管理对象之间的依赖关系,降低耦合度,提高代码可测试性和可维护性。 其次,"第13章 Spring基础.ppt"可能是一...
SSM框架是Java EE开发中常用的三大框架——Spring、Spring MVC和MyBatis的组合,它们各自负责不同的职责,共同构建了一个强大的企业级应用开发体系。以下是对这些框架的详细解释: 1. **Spring框架**:Spring是Java...
这个"javaee.zip"文件包含了基于JavaEE技术的课程设计项目——一个个性化的学生信息管理系统。该项目着重于前端界面设计与后端数据处理,提供了学生信息的增、删、查、改等基本功能,适合用于教学和实践。 首先,让...
- `ch11.pptx`和`ch9.pptx`可能包含了数据库连接、JDBC(Java Database Connectivity)和实体管理。 - `ch14.pptx`可能涵盖了Web服务(如SOAP和RESTful API)的开发。 - `ch7.pptx`和`ch4.pptx`可能涉及到Web应用...
《JavaEE大学生宿舍管理系统》是一款基于Java技术,利用JSP/Servlet、JDBC进行开发,以Oracle数据库为存储后台,采用Tomcat作为Web服务器,并在MyEclipse集成开发环境中实现的系统。本系统主要目标是提供高效、便捷...
本文主要探讨了基于JavaEE架构开发的通用商城系统的设计与实现。JavaEE(Java Platform, Enterprise ...关键词:JavaEE、MVC模型、Oracle数据库、B/S结构系统、Struts2、Spring、Hibernate、SSH、Ajax、JQuery、JDBC。
* 熟练运用 struts2、hibernate、spring、springmvc、mybatis、jquery、Ajax、JSTL/EL、WebService、jdbc、dom4j、log4j 等技术 * 掌握常用的 JAVA 设计模式 * 熟悉软件设计开发流程 * 了解 MySql、Oracle 等数据库 ...