JDBC详解

来源:互联网 发布:python可以开发游戏吗 编辑:程序博客网 时间:2024/06/06 05:12

前言

最近在接触到JDBC的时候真是一个煎熬啊!有很多词汇都不知道是什么,干什么用的,所以很是纠结,通过不断的学习总结出详细的内容更大家分享


What JDBC

Jdbc的英文是Java DataBase Connectivity,如果你看不看有英语简直感觉是太高大上了!其实就是数据库连接!那么你肯定会问为什么不用oDBC,为什么她呢,应为JDBC使用API的规范,它是用于执行sql语句的java API,最关键的是他可以为多种数据库提供统一的访问接口,这是最厉害的,有了JDBC之后我们可以用各种关系范松sql语句,应为我们可以用jdbc的api对于数据库的接口,所以java语言和jDBC结合 之后实现了一处编码到处运行!爽把
这里写图片描述


Why JDBC

给大家看一个图大家就知道为什么要用JDBC,从图中可以看出我们明显这进行了解耦,我们通过jdBC的接口与其他数据库的驱动程序进行关联,我们不需要针对每一个数据库进行写程序,只需要写一个就可以根据我们url知道驱动程序便可以ok了

使用JDBC的效果
这里写图片描述


没有使用JDBC的效果
这里写图片描述


建立JDBC

1如果想与数据库建立连接,那么首先必须要与调用驱动程序
使用DriverManager.getConnection 方法,DriverManager是查找某个url字符串,帮助我们与驱动程序建立连接,get Connetcion是他检查清单中的每个驱动程序,知道找到与Url中指定的数据进行连接的驱动程序为至,
发送SQL:
JDBC提供了3个类,用于向数据库发送sql语句,connection接口中的三个方法可用于创建这些类的实例,下列出这些类及创建方法
Statement:由方法createStatement创建,Statement对象用于发送简单的sql语句
PreparedStatement:由方法PreparedStatement所创建,PreparedStatement对象用于发送带有一个或多个输入参数,PreparedStatement拥有一组方法,用于设置in参数的值,PreparedStatement方法包括Statement ,PreparedStatement比Statement对象的效率高
CallableStatement用于执行sql存储程序,一组可通过名称来调用的SQL语句
这里写图片描述


使用JDBC的步骤

1加载JDBC驱动程序———–建立数据库连接connection———–创建执行sql的语句Statement,—-处理执行的接口ResultSet——-释放资源
1.载入JDBC驱动程序
2定义连接URL
3建立连接
4创建Statement对象
5执行查询或更新
6结果处理
7关闭连接


数据库的事物

在数据库中,所谓的事物是指一组逻辑操作单元,使数据从一种状态转换为另一个状态
事物的很大特性就是数据库的一致性,数据操作应当是离散的数据单元,所以我们要保证数据库的一致性用到了事物,如果操作一旦失败,整个事物都会视为错误,所有起点以后的操作都将退回到初始状态

事物的属性:
1.原子性:事物是一个不可分割的工作单位,事物中的操作要么全都发生,要么都不发生
2一致性:事物从一个状态转换为另一个状态
3隔离性:一个事物的操作不能被其他事物干扰
4持久性:一个事物一旦被提交,那么他的数据改变就是持久性的

代码

如果我们在银行中转账在事物中运行,加入一个事物有多条语句,我们想从小王那拿出100块,存储小全的账户上100块,如果这两条语句第二 个不正确那么我们的事物会回滚到第一条语句,也就是说第一条语句也是没有执行的

update account set monery=monery-1000 where name='小王' update account set monery=monery+1000 where name='小全' 

在这个过程中我们需要用到
1setAutoCommit(Boolean autoCommit)设置是否自动提交事物
2commit()提交事物
3rollback()撤销事物


在事物最开始的是时候我们通常用setAutocommit(false)来禁止自动提交事物,因为我们想让所有的语言一次性的全部进行提交commmit,如果有一条失败那么他就会走异常捕获代码,然后走rollback()方法撤销事物


连接池

我们需要把一次性批量的连接connection对象放到连接池中,当要使用的时候从这池子中取出一个链接使用,当完不需要的时候放回去(池子),当别的程序员使用的时候,我们可以复用连接,避免了不断的创建连接,关闭连接从而达到优化

数据源就是指的连接池的代理,我们连接的时候直接找连接池就可以了,不需要再去找数据源,每个连接就是种菜浇地的水管,连接池就是井,而数据源就是大海,

将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理


总结

总体感觉还不错!对于JDBC有很多不清楚的地方需要再去了解,不断的去深入

原创粉丝点击