JDBC详解
1.什么是JDBC?
Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。它JDBC是面向关系型数据库的。
简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作。通过封装,可以使开发人员使用纯Java API完成SQL的执行。
2.思考问题?
1.每次SQL操作都需要建立和关闭连接,这势必会消耗大量的资源开销,如何避免?
分析:可以采用连接池,对连接进行统一维护,不必每次都建立和关闭。事实上这是很多对JDBC进行封装的工具所采用的。
2.Java代码中,传入的数据格式与数据库定义不同怎么办?如把Java的String对象赋值给数据库的tinyint属性。
分析:在执行SQL语句时,数据库会尝试进行转换。根据我的实验,如果用内容为纯字母的String对象传入tinyint的age属性时,会被转化成0。具体转化规则应该和数据库有关。
3.数据库驱动?
我们安装好数据库之后,我们的应用程序也是不能直接使用数据库的,必须要通过相应的数据库驱动程序,通过驱动程序去和数据库打交道。其实也就是数据库厂商的JDBC接口实现,即对Connection等接口的实现类的jar文件。
4.事务?
(1)基本概念:一组要么同时执行成功,要么同时执行失败的SQL语句。是数据库操作的一个执行单元。
(2)事务开始于:连接到数据库上,并执行一条DML语句(INSERT、UPDATE、DELETE) ;前一个事务结束后,又执行新一条DML语句。
(3)事务结束于:执行COMMIT或ROLLBACK;执行一条DDL语句,例如执行CREATE TABLE语句,在这种情况下,会自动执行COMMIT语句;执行一条DCL语句,例如执行GRANT语句,在这种情况下,会自动执行COMMIT语句;断开与数据库连接;执行一条DML语句,该语句却失败了,在这种情况中,会为这个无效的DML语句执行ROLLBACK语句。
5.事务的四大特点(ACID)?
atomicity(原子性)
表示一个是屋内的所有操作是一个整体,要么全部成功,要么全部失败。
consistency(一致性)
表示一个事务内有一个操作失败时,所有的更改过的数据都必须回滚到修改前的状态。
islation(隔离性)
事务查看数据时所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不回查看中间状态的数据。
durability(持久性)
持久性事务完成后,他对于系统的影响是永久性的。
6.事务隔离级别从低到高?
读取未提交
读取已提交
可重复读
序列化