61,JDBC访问数据库的基本步骤是什么?

1,加载驱动

2,通过DriverManager对象获取连接对象Connection

3,通过连接对象获取会话

4,通过会话进行数据的增删改查,封装对象

5,关闭资源

62,说说preparedStatement和Statement的区别

1,效率:预编译会话比普通会话对象,数据库系统不会对相同的sql语句不会再次编译

2,安全性:可以有效的避免sql注入***!sql注入***就是从客户端输入一些非法的特殊字符,而使服务器端在构造sql语句的时候仍然能够正确构造,从而收集程序和服务器的信息和数据。

比如:“select * from t_user where userName = ‘” + userName + “ ’ and password =’” + password + “’”

如果用户名和密码输入的是’1’ or ‘1’=’1’ ; 则生产的sql语句是:

“select * from t_user where userName = ‘1’ or ‘1’ =’1’ and password =’1’ or ‘1’=’1’ 这个语句中的where 部分没有起到对数据筛选的作用。

63,说说事务的概念,在JDBC编程中处理事务的步骤。

1 事务是作为单个逻辑工作单元执行的一系列操作。

2,一个逻辑工作单元必须有四个属性,称为原子性、一致性、隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务

事务处理步骤:

3,conn.setAutoComit(false);设置提交方式为手工提交

4,conn.commit()提交事务

5,出现异常,回滚 conn.rollback();

64,数据库连接池的原理。为什么要使用连接池。

1,数据库连接是一件费时的操作,连接池可以使多个操作共享一个连接。

2,数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的管理机制监视数据库的连接的数量、使用情况,为系统开发,测试及性能调整提供依据。

3,使用连接池是为了提高对数据库连接资源的管理

65,JDBC的脏读是什么?哪种数据库隔离级别能防止脏读?

当我们使用事务时,有可能会出现这样的情况,有一行数据刚更新,与此同时另一个查询读到了这个刚更新的值。这样就导致了脏读,因为更新的数据还没有进行持久化,更新这行数据的业务可能会进行回滚,这样这个数据就是无效的。数据库的TRANSACTIONREADCOMMITTED,TRANSACTIONREPEATABLEREAD,和TRANSACTION_SERIALIZABLE隔离级别可以防止脏读。

66,什么是幻读,哪种隔离级别可以防止幻读?

幻读是指一个事务多次执行一条查询返回的却是不同的值。假设一个事务正根据某个条件进行数据查询,然后另一个事务插入了一行满足这个查询条件的数据。之后这个事务再次执行了这条查询,返回的结果集中会包含刚插入的那条新数据。这行新数据被称为幻行,而这种现象就叫做幻读。

只有TRANSACTION_SERIALIZABLE隔离级别才能防止产生幻读。

67,JDBC的DriverManager是用来做什么的?

JDBC的DriverManager是一个工厂类,我们通过它来创建数据库连接。当JDBC的Driver类被加载进来时,它会自己注册到DriverManager类里面

然后我们会把数据库配置信息传成DriverManager.getConnection()方法,DriverManager会使用注册到它里面的驱动来获取数据库连接,并返回给调用的程序。

68,execute,executeQuery,executeUpdate的区别是什么?

1,Statement的execute(String query)方法用来执行任意的SQL查询,如果查询的结果是一个ResultSet,这个方法就返回true。如果结果不是ResultSet,比如insert或者update查询,它就会返回false。我们可以通过它的getResultSet方法来获取ResultSet,或者通过getUpdateCount()方法来获取更新的记录条数。

2,Statement的executeQuery(String query)接口用来执行select查询,并且返回ResultSet。即使查询不到记录返回的ResultSet也不会为null。我们通常使用executeQuery来执行查询语句,这样的话如果传进来的是insert或者update语句的话,它会抛出错误信息为 “executeQuery method can not be used for update”的java.util.SQLException。 ,

3,Statement的executeUpdate(String query)方法用来执行insert或者update/delete(DML)语句,或者 什么也不返回,对于DDL语句,返回值是int类型,如果是DML语句的话,它就是更新的条数,如果是DDL的话,就返回0。

只有当你不确定是什么语句的时候才应该使用execute()方法,否则应该使用executeQuery或者executeUpdate方法。

69,SQL查询出来的结果分页展示一般怎么做?

Oracle:

select * from

(select *,rownum as tempid from student ) t

where t.tempid between ” + pageSize(pageNumber-1) + ” and ” + pageSizepageNumber

MySQL:

select from students limit ” + pageSize(pageNumber-1) + “,” + pageSize;

sql server:

select top ” + pageSize + ” * from students where id not in +

(select top ” + pageSize * (pageNumber-1) + id from students order by id) +

“order by id;

70,JDBC的ResultSet是什么?

在查询数据库后会返回一个ResultSet,它就像是查询结果集的一张数据表。

ResultSet对象维护了一个游标,指向当前的数据行。开始的时候这个游标指向的是第一行。如果调用了ResultSet的next()方法游标会下移一行,如果没有更多的数据了,next()方法会返回false。可以在for循环中用它来遍历数据集。

默认的ResultSet是不能更新的,游标也只能往下移。也就是说你只能从第一行到最后一行遍历一遍。不过也可以创建可以回滚或者可更新的ResultSet

当生成ResultSet的Statement对象要关闭或者重新执行或是获取下一个ResultSet的时候,ResultSet对象也会自动关闭。

可以通过ResultSet的getter方法,传入列名或者从1开始的序号来获取列数据。

欢迎工作一到五年的Java工程师朋友们加入Java架构师:697558955

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

转载于:https://blog.51cto.com/14233733/2376087

Java面试题-javaweb篇七相关推荐

  1. Java面试题-进阶篇(2022.4最新汇总)

    Java面试题-进阶篇 1. 基础篇 1.1 基本数据类型和包装类 1.2 Double转Bigdecimal可能会出现哪些问题?怎么解决? 1.3 equals 与 == 的区别? 1.4 Java ...

  2. Java面试题基础篇(一)

    Java面试题基础篇(一) Java面试题基础篇(一) 1.jre和jdk有什么区别? 2.==与equals的区别? 3.接口和抽象类的共同点和不同点? 4.lamda表达式的优缺点? 5.Stri ...

  3. Java面试题十篇基本问题,学完这些我就不信拿不到offer

    前言 网上找了很多的Java面试题及部分资料,选取了其中10篇来作为本次的分享.以下为整理出来的文章,给大家分享. java面试题及答案 第一篇 一面 手写ArrayList 手写进制转换算法,求出一 ...

  4. 年终盘点 | 2019年Java面试题汇总篇(附答案)

    作者 | 老王 来源 | Java中文社群「微信公众号」 在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几 ...

  5. 【吐血整理】年度盘点 | 2019年Java面试题汇总篇——附答案

    在这岁月更替辞旧迎新的时刻,老王盘点了一下自己 2019 年发布的所有文章,意外的发现关于「Java面试」的主题文章,竟然发布了 52 篇,几乎是全年每周一篇面试文章的节奏,当然其中有不少的面试题来源 ...

  6. Java面试题——基础篇一

    目录 什么是Java? JVM.JRE和JDK的关系 Java语言有哪些特点? &和&&的区别 final 在 java 中有什么作用? String 属于基础的数据类型吗? ...

  7. Java面试题-框架篇九

    81,使用Spring框架的好处是什么? 轻量:Spring 是轻量的,基本的版本大约2MB. 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们. ...

  8. Java面试题-基础篇二

    11.是否可以从一个static方法内部发出对非static方法的调用? 不可以.因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用 ...

  9. 阿里内部资料!10W字总结JAVA面试题-基础篇

    目录 1.JAVA语言有哪些特点 2.面向对象和面向过程的区别 3 .八种基本数据类型的大小,以及他们的封装类 4.标识符的命名规则. 5.instanceof 关键字的作用 6.Java自动装箱与拆 ...

最新文章

  1. cffi java_atomiclong-使用CFFI的原子长类型。-David Reid
  2. Sony如何启动微型计算机,索尼笔记本怎么进入bios 索尼VAIO笔记本进入bios技巧
  3. c++五子棋_Java五子棋实现
  4. 【解决bug之路】JAVA 之 static
  5. CString类(转)
  6. Microsoft AJAX Library对 String的扩展
  7. Oracle 数据库插入时间字段
  8. 微信小程序常用UI组件库
  9. origin 修改默认字体
  10. 关于MSN群 创建MSN群 使用MSN群
  11. 意法半导体 STM32F102C4 芯片解密 芯片特性
  12. ABAP数据字典和数据表的读取
  13. groovy-时间转换
  14. 频域分析中的三频段理论
  15. 第三章、三元运算、文件处理、函数
  16. 极验geetest的使用
  17. 网站最下方必须显示您的备案号,并能链接到工信部网站,怎么操作?
  18. OSChina 周一乱弹 —— 喝掉这瓶奶 忘掉那个仔
  19. Django实战(9)——为人脸识别系统添加随机抽签功能
  20. (读书笔记)《玩着玩着就能成为PPT高手》——如何制作一个简单易懂的PPT

热门文章

  1. 机器学习博士自曝:实验室「阉割」我的创造力,劝你别读
  2. 24个提高知识和技能极限的机器学习项目
  3. 图解半监督学习FixMatch,只用10张标注图片训练CIFAR10
  4. 3 年血亏 10 亿美元,Google Deepmind 出了什么问题?
  5. SAP MM 公司间STO里外向交货单与内向交货单里序列号对应关系
  6. 未来的房地产,一边香港化,一边鹤岗化
  7. AI产业落地风向标,2019全球智博会亮点回顾
  8. 解剖科大讯飞的AI“乌托邦”
  9. Nature:AI 引导人类直觉,帮助发现数学定理
  10. 工业传感器:工业互联网的第一道门