声明:本栏目所使用的素材都是凯哥学堂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——基于ECLIPSE和WEBLOGIC课件及实验指导 实验1(08). JavaEE环境安装.doc 实验2-JNDI访问远程资源.doc 实验3-使用JNDI访问连接池08.doc
javaEE——在线打车系统.zip
求精要诀——JavaEE编程开发案例精讲 源代码(8-12章)
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。...
javaee-jdbc jdbc programing acid commit rollback
JavaEE+JDBC+Servlet+EL表达式的员工信息管理系统 本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目源码系统完整,内容都是经过专业老师审定过的,基本能够满足学习、使用...
主要介绍了详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
JavaEE+JDBC+Servlet+EL表达式的员工信息管理系统源码+数据库+项目说明(高分课设).zip # :heart: JavaEE+JDBC+Servlet+EL表达式的员工信息管理系统 ## 介绍 简易的员工管理系统,包括信息的增删改查,新增员工...
JAVAEE中有关JDBC使用的说明书
基于JAVAEE的JDBC小实验,希望能对大家有所帮助!!!
JavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源代码 jdbc2_0-stdextJavaEE源...
1、掌握Spring JDBC的配置; 2、掌握JdbcTemplae类中增删改查方法的使用; 3、了解Spring事务管理的3个核心接口; 4、了解Spring事务管理的两种方式; 5、掌握基于XML和Annotation的声明式事务管理的使用。 二、 ...
java毕业设计——javaEE土地档案管理系统(论文+答辩PPT+源代码+数据库+讲解视频).zip java毕业设计——javaEE土地档案管理系统(论文+答辩PPT+源代码+数据库+讲解视频).zip java毕业设计——javaEE土地档案管理...