数据库面试-关于 jdbc 数据库连接池 数据库事务的题目

Posted 福建沙县小吃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库面试-关于 jdbc 数据库连接池 数据库事务的题目相关的知识,希望对你有一定的参考价值。

什么是JDBC? 解释下驱动(Driver)在JDBC中的角色。
JDBC是允许用户在不同数据库之间做选择的一个抽象层。JDBC允许开发者用JAVA写数据库应用程序,而不需要关心底层特定数据库的细节。
JDBC驱动提供了特定厂商对JDBC API接口类的实现,驱动必须要提供java.sql包下面这些类的实现:Connection, Statement, PreparedStatement,CallableStatement, ResultSet和Driver。
Class.forName()方法有什么作用?
初始化参数指定的类,并且返回此类对应的Class 对象
PreparedStatement比Statement有什么优势?
PreparedStatements是预编译的,因此,性能会更好。同时,不同的查询参数值,PreparedStatement可以重用。
数据库连接池是什么意思? 说出数据连接池的工作机制是什么?
像打开关闭数据库连接这种和数据库的交互可能是很费时的,尤其是当客户端数量增加的时候,会消耗大量的资源,成本是非常高的。可以在应用服务器启动的时候建立很多个数据库连接并维护在一个池中。连接请求由池中的连接提供。在连接使用完毕以后,把连接归还到池中,以用于满足将来更多的请求。
J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。
调用:客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为 忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。
释放:当使用的池连接调用完成后,池驱动程序将此连接表记为空闲, 其他调用就可以使用这个连接。
DBUtils是什么?
DbUtils是Apache组织提供的一个对JDBC进行简单封装的开源工具类库,使用它能够简化JDBC应用程序的开发,同时也不会影响程序的性能。
下面哪个SQL命令用来向表中添加列()
A.MODIFY TABLE TableName ADD COLUMN ColumnName
B.MODIFY TABLE TableName ADD ColumnName
C.ALTER TABLE TableName ADD COLUMN ColumnName
D.ALTER TABLE TableName ADD ColumnName Type
答:D
数据库中的事务是什么?
事务(transaction)是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功,即使只有一个操作失败,事务也不成功。如果所有操作完成,事务则提交,其修改将作用于所有其他数据库进程。如果一个操作失败,则事务将回滚,该事务所有操作的影响都将取消。ACID 四大特性,原子性、隔离性、一致性、持久性。
**请问如何在mysql操作中写入utf8格式数据 **
首先确保数据库中的表是基于utf8编码的,其次java文件是utf8编码,在执行mysql 操作之前,对于要操作的文本如果是utf8 编码,则可以直接操作,如果是其它编码,则可以使用函数将其转化为utf8编码,然后写入。
update和saveOrUpdate的区别?
update()和saveOrUpdate()是用来对跨Session的PO进行状态管理的。
update()方法操作的对象必须是持久化了的对象。也就是说,如果此对象在数据库中不存在的话,就不能使用update()方法。
saveOrUpdate()方法操作的对象既可以使持久化了的,也可以使没有持久化的对象。如果是持久化了的对象调用saveOrUpdate()则会 更新数据库中的对象;如果是未持久化的对象使用此方法,则save到数据库中。
如果某段与数据库交互的程序运行较慢你将如何处理?
一是首先提高数据库的查询速度,比如增加索引,优化表的结构。
二是优化程序代码,如果查询比较多,可以尽量用条件查询,减少查询语句,比如能用一条查询语句就不用两条。
三就是提高服务器的速度,优化服务器,把不必要的进程关掉。
以下哪个不是与Mysql服务器相互作用的通讯协议()
A.TCP/IP B.UDP C.共享内存 D.Socket
答: B
下面有关jdbc statement的说法错误的是?
A.JDBC提供了Statement、PreparedStatement 和 CallableStatement三种方式来执行查询语句,其中 Statement 用于通用查询, PreparedStatement 用于执行参数化查询,而 CallableStatement则是用于存储过程
B.对于PreparedStatement来说,数据库可以使用已经编译过及定义好的执行计划,由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象”
C.PreparedStatement中,“?” 叫做占位符,一个占位符可以有一个或者多个值
D.PreparedStatement可以阻止常见的SQL注入式攻击
答: C
下面哪一项不是加载驱动程序的方法?
A.通过DriverManager.getConnection方法加载
B.调用方法 Class.forName
C.通过添加系统的jdbc.drivers属性
D.通过registerDriver方法注册
答: A

thanks for watching!,嘻嘻🤭

以上是关于数据库面试-关于 jdbc 数据库连接池 数据库事务的题目的主要内容,如果未能解决你的问题,请参考以下文章

数据库面试-关于 jdbc 数据库连接池 数据库事务的题目

[八]数据库连接池与JDBC。纳尼?连接池关JDBC神马事?

java jdbc深入理解(connection与threadlocal与数据库连接池和事务实)

java jdbc深入理解(connection与threadlocal与数据库连接池和事务实)

关于jdbc和数据库连接池的关系(不是封装的关系)

SQL面试整理——数据库连接池