第二十九天学习java

总结

PrepareStatement

  • prepareStatement和Statement的区别:
    1. 都是语句对象
    2. ps是st的子类
    3. ps可以防止sql注入问题,还可以减少字符串拼接的麻烦
    4. 在数据库有缓存区的情况下ps的效率比st的效率高

事务

  • 事务:

    一组操作,要么都成功,要么都失败

    • 四大特性(ACID)
      1. 原子性:最小的单位
      2. 一致性:整个操作完成后总的不变
      3. 隔离性:解决并发问题
      4. 持久性:存在硬盘中不变
  • JDBC中事务:

    • JDBC每执行一次语句,就会自动提交事务,这样需要多个事务连接使用时,就不行
    • 步骤:
      1. 需要我们自己将自动提交事务关了(conn.setAutoCommit(false)😉
      2. 然后提交的时候自己提交(conn.commit())
      3. 功能异常:conn.rollback()

添加数据是获取id

  • 语句对象添加数据时拿主键:
    • 返回主键这个功能默认关闭的,否则影响性能
    • 语句对象:
    1. 执行sql语句时,将返回主键打开(Statement.RETURN_GENERATED_KEYS)
    2. 获取结果集,通过结果集索引得到主键(rs = stm.getGeneratedKeys())
    • 预编译语句对象:
    1. 放入sql模板时(没有数据),在后面将返回主键打开(Statement.RETURN_GENERATED_KEYS)
    2. 获取结果集,通过结果集索引得到主键(rs = stm.getGeneratedKeys())

连接池

  • 连接池:
    • DBCP、C3P0、Druid、Hikari
    • 相当于装连接对象的容器(相当于一个框架),可以提高效率,第三方的,需要导包
    • 步骤:
      • 导包(两个,dbcp和pool)
      • 找到框架的关键(核心)对象
      • 通过核心对象获取链接:
        1. new核心对象配置四大金刚,再获取连接对象
        2. 通过工厂创建对象(并且将配置文件放入,注意:这里的配置属性有规范),再获取连接对象

工具类的抽取

  • 只对增删改进行了抽取,因为很多的代码重复,只有SQL和参数不一样
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值