JDBC
介绍
Java DataBase Connectivity(数据库连接)
概念
用于执行SQL语句的 Java API,可以为多种关系型数据库提供统一的资源访问,它本身就是由Java编写的
JDBC对于程序员来说就是一套API,对数据库厂商而言,是接口模型。简单来说:JDBC可以做三件事
- 建立数据库的连接
- 发送操作数据库的SQL语句
- 返回数据库查询出的结果集
开发步骤:
- 导包
- 注册驱动
- 连接数据库
- 发送SQL语句
- 设置占位符 *
- 执行SQL语句
- 关闭访问资源
注意
占位符:避免mysql注入。有值,但是不确定值是多少。
增、删、改:executeUpdate()
查:excuteQuery()
看代码
- JDBC通信规则涉及的API
- java.sql.Driver接口
声明了用于建立通信通道的方法名由Driver接口修饰对象相当于”隧道工人”Driver obj
- java.sql.Connection接口
声明了用于维护通信通道的方法名由Connection接口修饰对象,相当于”道路养护工”Connection obj
- java.sql.PreparedStatement接口
声明了用于推送通信信息的方法名由PreparedStatement接口修饰对象,相当于”快递小哥”PreparedStatement obj
- java.sql.ResultSet接口
声明了操作查询之后生成的临时表的方法名由ResultSet接口修饰的对象,相当于”临时表管理员”ResultSet obj
- java.sql.DriverManager类
负责调用由数据库厂商提供的Driver接口实现类的实例对象去打通通道,相当于”监工”
- java.sql.Driver接口
1 | // 查询例子: |
1 | // 新增例子: |
注意!!!
1 | ps.executeUpdate() 与 ps.executeQuery()区别: |
数据库连接池
存在的问题
普通的JDBC数据库连接使用的是DriverManager
来获取,每次向数据库建立连接的时候都要将connection
加载到内存。频繁链接断开这样的方式极大地消耗大量的资源和时间。概念
数据库连接建立一个”缓冲池”,预选在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需要从”缓冲池”中取一个使用完毕之后再放回去。数据库连接池负责分配,管理和释放数据库连接,允许应用程序重复使用一个现有的数据库连接,而不是重新建立。常用的数据库连接池。
C3P0【已经没落】
druid【德鲁伊】alibaba 开源项目
DBCP 全称:DataBase Connection Pool。Apache的一个开源项目
dao
Data Access Object【数据访问逻辑】
- 概念
封装了数据访问的细节,对于其它层来说是透明的,看不见的。 - 如何写一个DAO?
- 实体类【pojo、entity】
为了方便处理数据库中的记录,可以定义一个与数据库中的表对应的实体类。
即表名—类名,列名—属性名。 - dao接口
声明一些数据访问方法,这些方法都是抽象的。 - dao接口的实现类
用于实现dao接口中具体的数据库访问细节。 - dao工厂
根据配置信息来获取不同的dao实现对象。
- 实体类【pojo、entity】
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 食葫芦的葫芦娃!
评论