美文网首页java学习
NO.51 JDBC核心API

NO.51 JDBC核心API

作者: smallnumber | 来源:发表于2017-08-21 23:40 被阅读0次

    一.连接池(数据源)

    1.直接使用DriverManager的问题

    它没有管理连接上限,并发量大时很容易导致数据库崩溃

    每次调用它,它都创建新连接,而不是复用连接,效率低

    2.连接池可以解决上述问题

    它能管理连接上限,避免数据库崩溃

    它可以让我们复用连接,提高效率

    3.连接池的工作场景

    创建连接池对象时,它会自动连接数据库,并创建一批(配)连接(空闲)当调用连接池方法时,它会返回一个连接,并将此连接标记为占用态;

    当使用完连接后,需将连接归还给连接池,它会将连接数据清空,标记为空闲态

    当连接池发现空闲连接即将用尽(配)时,它会再次自动创建一批(配)新连接

    当占用连接已达数据库上限(配)时,连接池会让调用者等待

    当高峰期过后,连接池会自动关闭一批(配)连接

    4.有哪些常用连接池?

    DBCP

    C3P0

    5.要点

    连接池由sun设计出接口DataSource

    由厂商提供实现类(DBCP提供的实现类是BasicDataSource)


    二.Statement和PreparedStatement

    1.它们的联系

    它们都能够执行SQL

    PreparedStatement extendsStatement

    2.它们的区别(面试题)

    Statement适合执行静态(无条件)SQL

    PreparedStatement适合执行动态(有条件)SQL

    3.Statement运行原理

    4.PreparedStatement运行原理

    5.使用PreparedStatement可以避免注入攻击


    三.ResultSet

    1.结果集的指针

    2.ResultSetMetaData

    结果集元数据:对结果集进行描述(概括)的数据

    包含:多少列,列名,列的类型

    3.可跳动结果集

    几乎不用


    JDBC支持如下的日期类型

    java.sql.Date年月日

    java.sql.Time时分秒

    java.sql.Timestamp完整日期

    上述日期都是java.util.Date的子类


    代码示例:利用连接池获取连接的封装

    DBUtil工具

    其中db.properties文件内容如下:

    db.properties配置文件

    测试代码:

    测试连接及删除示例 查询示例 插入数据示例 查询核对账号密码示例 查看ResultSet概括信息示例

    实现转账功能:

    假设当前用户已经登录了网银,他已经输入了收款方的账号,和要转出的金额.他点击了转账按钮,服务器接收了相关的数据,开始进行转账.

    转账的步骤:

    1.查询付款方余额够不够

    2.查询收款方账号,看对不对

    3.修改付款方的余额,-N元

    4.修改收款方的余额,+N元

    相关文章

      网友评论

        本文标题:NO.51 JDBC核心API

        本文链接:https://www.haomeiwen.com/subject/mytkdxtx.html