JDBC笔记摘要

什么是JDBC?

定义:

JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型

优点:

直接底层操作,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,可以写很复杂的SQL语句。

缺点:

因为JAVA是面向对象的,JDBC没有做到使数据能够面向对象的编程,使程序员的思考仍停留在SQL语句上。

作用:

通过java操作数据库

原理:

JDBC只是一套规范接口,真正实现的是各种的驱动,可以访问自己数据库的API被称之为驱动。

使用步骤:

1、导入jar包
2、加载(注册)数据库驱动(到baiJVM)。
3、建立(获读取)数据库连接zhi。
4、创建(获取)数据库操作对象。
5、定义操作的SQL语句。
6、执行数据库操作。
7、获取并操作结果集。
8、关闭对象,回收数据库资源(关闭结果集–>关闭数据库操作对象–>关闭连接)。

应用场景:

JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果

Connetion(连接)

  1. 创建Statement对象
  2. 管理事务(ACID)
    1. 原子性 A
    2. 一致性 C
    3. 隔离性 I
    4. 持久性 D

Statement(语句)

  1. 封装SQL语句
  2. 执行SQL语句
    1. DML:结果为int
    2. DQL:ResultSet

ResultSet

1.存储结构

List<Map<String, Object>>
class ResultSet {
    List<Map<String, Object>> data;
    int p = 0;
    
    Map<String, Object> curData;
    
    
    public boolean next() {
        if (p > data.size()) return false;
        p++;
        curData = data.get(p);
        return true;
    }
    
    
    public get(String key) {
        return curData.get(key);
    }
    
}

2.作用: 封装mysql 服务器响应的数据

三层结构

  1. dao
  2. service
  3. web 【servlet(Controller)】
    web -> service -> dao

junit

  1. 导包(idea中可以直接alt + enter)
  2. 写Test注解

对象创建过程

DriverManager -> Connetction -> Statement -> ResultSet

为什么会有工具类:

工具类目的

  1. 去掉重复代码,去重
  2. 实现步骤
    1. 编写配置文件
    2. 加载配置文件,赋值
    3. 编写方法获取链接
    4. 释放资源方法

为什么配置信息写在配置文件中要好一些?

  1. 不需要去修改java代码
  2. 配置文件不会常驻内存,在使用时重新加载文件(可以在程序运行时动态修改配置文件)

类加载器的作用

  • 目的:将我们编写的class文件,加载到jvm内存中(永久代)

事务管理

  • 使用对象:Connection对象
  • 事务方法:
    • 开启事务:setAutoCommit(false)
    • 如何提交:commit()
    • 回滚:rollback()
  • 账户,转账案列

数据库连接池

  • 作用: 避免重复创建链接, 提升程序的执行效率

C3P0数据库链接池

  • 使用步骤:
    • 导包
    • 配置信息(c3p0-config.xml)
    • 直接创建CombopooledDataSource

C3P0测试

  • 是否能够正常获取到maxPoolSize个链接(验证方式是每一个对象的地址值是不同的)
  • 关闭(归还)链接后是否还能获取到被关闭的链接

Druid

  • 使用步骤:
    • 导包(druid包 + MySQL驱动)
    • 配置文件编写
    • 代码编写:
  • 加载配置文件
  • 通过DruidDataSourceFactory获取DataSource

数据库连接池工具类

  1. 目的:

  2. 简化(封装)DataSource的创建步骤

  3. 一个程序中只需要维护一个DataSource

  4. 步骤

  5. 私有工具类的构造方法

  6. 静态代码块中实现Datasource的初始化

  7. 加载配置文件

  8. 创建DataSource

    • 提供获取Connection的方法
    • 释放资源

JDBCTemplate

  • 目标: 直接传入SQL语句即可
  • 需要对象:
    • DataSource
  • update方法实现
    • SQL
    • 参数:Object可变参数
    • 具体实现
      • 判断参数个数和原信息中的参数个数是否一致
      • 执行SQL获取结果
      • 释放资源
      • 返回结果

BeanHandler作用

  • 他是一种策略的实现, 这种策略是将ResultSet解析为一个Object

策略设计模式

  • 执行者(谁执行策略)
  • 策略(策略接口)
    • 策略实现
  • 调用者
    • 创建策略传递给执行
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值