【Java从0到架构师(2),Java最新面试题及答案

Gitee 代码:https://gitee.com/szluyu99/mj_java/tree/master

如何通过 Java 操作数据库?

JDBC,全称是 Java Database Connectivity

  • 在 Java 中用来规范如何访问关系型数据库,由各大数据库厂商去实现它

  • 属于 JavaSE 的一部分

    在这里插入图片描述

下载 MySQL 的 JDBC 实现(jar,驱动包)

==============================================================================================

8.0 版本的驱动包同时支持 MySQL 5.7,8.0

文档:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-versions.html

下载地址:https://dev.mysql.com/downloads/connector/j/

在这里插入图片描述

JDBC 使用

==========================================================================

示例代码:https://gitee.com/szluyu99/mj_java/blob/master/04_JDBC/src/com/mj/Main.java

  1. Driver(驱动程序)注册到 DriverManager(驱动程序管理者)

  2. 利用 DriverManager 创建 Connection(数据库连接)

  3. 利用 Connection 创建 Statement(语句)

  4. 利用 Statement 执行 SQL 语句

  5. 关闭资源(关闭 StatementConnection 等)


MySQL 的 url 格式:


jdbc:mysql://IP地址:端口号/数据库名 

示例:


jdbc:myqsl://localhost:3306/xmg 

在这里插入图片描述


从 JDBC 4.0 开始,显式注册驱动程序是可选的

  • 只需要将供应商的 Jar 放在类路径中,然后 DriverManager 就可以自动检测并加载驱动程序

JDBC 版本:

  • JDBC 4.0 包含在 Java SE 6 中

  • JDBC 4.1 包含在 Java SE 7 中

  • JDBC 4.2 包含在 Java SE 8 中

  • JDBC 4.3 包含在 Java SE 9 中

Statement 的常用 API


ResultSet executeQuery(String sql):执行 DQL 语句

int executeUpdate(String sql):执行 DML、DDL 语句

  • 如果是 DML 语句,返回值代表影响的记录数量

    如果数据库没有任何返回值,通常返回 0

ResultSet 的常用 API


boolean next():让游标指向下一行

  • 如果指向的这行有数据,就返回 true

    否则,返回 false

XX getXX(int columnIndex)XX getXX(String columnLabel)

  • 获取当前行(游标指向的那行)某一列的数据

  • columnIndex 的数值从 1 开始

PreparedStatement


PreparedStatement 接口继承自 Statement 接口

建议使用 PreparedStatement 替代 Statement

Preparedstatement 的优点:

  • 可以防止 SQL 注入

  • 执行速度比 Statement 快

  • 支持批量处理

配置文件


一些经常动态修改的值,建议放入到配置文件中,不要写死在 Java 代码中

  • 因为 .java 编译后变成 .class,无法直接修改其内容

  • 已部署的项目想要修改配置信息,则需要修改 Java 代码再重新部署

Java 中常用的配置文件:

  • properties:比较单一,适合量小、简单的配置

  • xml:比较灵活,适合量大、复杂的配置

properties 文件:

  • key,value 的分隔符是 =:

  • 建议分隔符左右不要留空格

  • #! 开头是单行注释

  • 可以用反斜线 \ 连接多行内容

数据库连接池


数据库连接池,可以提高访问数据库的性能,负责创建、分配、管理和释放数据库连接

基本思想:

  • 在初始化时,创建一定数量的数据库连接对象存储在内存中

  • 当需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已创建的空闲连接对象

  • 使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用

  • 当连接的空闲时间已超过最大空闲时间时,将会释放掉该连接

  • 可以通过设置参数来控制初始连接数连接的上下限数以及每个连接的最大使用次数最大空闲时间

  • 可以通过其自身的管理机制来监视数据库连接的数量、使用情况

Java 中常见的开源的数据库连接池:

  • C3P0,Proxool,DBCP,BoneCP,Druid

Druid 产自阿里巴巴,项目地址:https://github.com/alibaba/druid/

jar 包下载:https://mvnrepository.com/artifact/com.alibaba/druid

Spring JDBC

==============================================================================

示例代码:https://gitee.com/szluyu99/mj_java/tree/master/06_crm_Spring-JDBC

Spring JDBC 框架可以帮助开发者节省大量开发工作,自动去处理一些低级细节,比如

  • 异常处理、打开和关闭资源(Connection、Statement,ResultSet)

需要的 jar 包:

  • spring-jdbc

总结

本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!

重要的事:需要领取完整版的MySQL学习笔记的话,请转发+关注后点这里免费获取到免费的下载方式!

MySQL50道高频面试题整理:

nnection、Statement,ResultSet)

需要的 jar 包:

  • spring-jdbc

总结

本文从基础到高级再到实战,由浅入深,把MySQL讲的清清楚楚,明明白白,这应该是我目前为止看到过最好的有关MySQL的学习笔记了,我相信如果你把这份笔记认真看完后,无论是工作中碰到的问题还是被面试官问到的问题都能迎刃而解!

重要的事:需要领取完整版的MySQL学习笔记的话,请转发+关注后点这里免费获取到免费的下载方式!

MySQL50道高频面试题整理:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值