写在最前边:
研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。
Java 基础
第三阶段 分析需求、提高代码实现能力
第四章JDBC和连接池

一、概念
1、JDBC是什么?
2、JDBC原理示意图
二、JDBC快速入门
1、简单的编写步骤
代码实现
三、获取数据库连接的5种方式
1、使用Driver()静态加载不灵活
2、使用Driver类的反射更加灵活
3、使用DriverManager类 ==驱动管理,便于统一管理,更加灵活嘤 ==
4、使用Class.forName完成自动注册比3更加简化代码,不用创建Driver类
推荐使用
细节:5、使用配置文件 对 方法4 的优化
四、ResulSet 理解为指向数据库select查询返回结果的指针
1、 是什么?
2、使用方法
3、ResulSet 的存储结构
五、Statement
1、是什么?
执行SQL语句的并返回其执行的结果
2、类型
- Statement存在SQL注入问题,实际开发不用这个
SQL注入:利用Statement的字符串拼接漏洞
- PreparedStatement 【预处理】
- CallableStatement 【存储过程】
3、PreparedStatement 编译次数减少,效率较高
使用 ? 做参数的占位符,从而解决由于字符串拼接带来的SQL注入危险
六、JDBC API梳理
七、JDBC Utils工具类
七、JDBC 处理事务
JDBC 中的 Connecion对象默认是自动提交
使用的语句:
connection.setAutoCommit(false); //其实就相当于 开始一个事务 ... connection.commit(); .... //异常处理中 connection.rollback(); //这里如果不添加保存点就默认回滚到事务开始的地方
八、批处理 多条sql语句一起提交给数据库执行
1、方法
2、 必须在url制定参数!!! 否则根本没效果
3、通常和PreparedStatement 一起使用效率更高
4、底层是ArrayList,初始为10个空间、后续按照1.5倍扩容,来存放sql语句
九、mysql数据库连接池
1、传统连接弊端不能控制连接数量从而引发一系列问题
- 同时连接的数量太多会造成数据库崩溃,从而数据库未能关闭,就会造成数据库 内存泄漏
- 单独连接又关闭,惊醒很多次会非常耗时
2、数据库连接池
1)基本介绍
2)示意图
3)数据库连接池使用==javax.sql.DataSource【连接池–数据源】==接口,其具体实现由不同的厂商实现,会提供jar包。
4)数据库连接池分类
3、C3P0 数据库连接池
- 方式一:在程序中指定数据库连接的相关参数【从配置文件中】
- 方式二:使用配置文件模板 C3P0.config.xml,添加到项目的src文件夹下
应该按照实际进行修改
4、Drid德鲁伊 数据库连接池
建议使用!!又快又稳定
- 配置文件是druid.properies
做一个基于德鲁伊数据连接池的 数据库操作工具类:
十、Apache-DBUtils
1、ResultSet存在的问题
2、解决办法
连接时:
连接断开时
3、ApDBUtils
- ApDBUtils介绍
- DBUtils类
- 代码演示:ApDBUtils + 德鲁伊,使用时需添加commons-dbutils.jar包到项目中
https://www.bilibili.com/video/BV1fh411y7R8/?p=849&spm_id_from=pageDriver&vd_source=863cd5165874b9e91cbd88db7b5eaa82
4、ApDBUtils 查询 select
细节:查询结果的形式不同(多行、单行、单行单列…)使用不同的ResultSetHandler接口类:
这里留下了一个可以使用泛型进行改进的空间
- 多行多列数据 --> 返回List集合
- 单行 多列数据 --> 返回某个JavaBean对象
- 单行单列数据 Scalar --> 返回Object对象
5、ApDBUtils DML语句(增删改)
细节:使用的都是queryRunner的update()方法,返回值均是整数表示受影响的行数
5、数据库的表和 JavaBean的类型映射关系
十一、将对一个表通用的增删改查封装为一个类——BasicDao
1、目前为止java开发中存在的问题
2、示意图:各司其职
3、简单设计
4、业务层完成多表操作
























































757

被折叠的 条评论
为什么被折叠?



