JDBC03

事务

  1. 满足如下几个特征的数据库访问叫事务:
    *原子性:事务是完整的,要么都成功,要么都失败
    *一致性:事务前后的数据要保持一致,即收支平衡
    *合理性:事务过程中的数据不能被别人访问,需要受保护/隔离
    *持久性:事务一旦达成,就永久有效
  2. JDBC对事务的支持-默认支持事务
    *JDBC自动管理事务:当调用executeUpdate()时,JDBC会自动提交事务
    *手动管理事务:con.setAutoCommit(false);//改为手动提交事务,con.commit();//提交 ,con.rollback();//回滚

批量处理

addBatch();将本条数据加入ps中,准备发送
executeBatch();发送ps中暂存的一批数据
clearBatch();清楚ps中暂存的数据,准备下次发送
JDBC03_第1张图片

返回自动主键

//参数2是一个数组,存放的是希望被ps记住的字段名
PreparedStatement ps=**conn.prepareStatement(sql,new 类型[]{要记住的字段名})**
//从ps中获取它之前记录的字段的值 返回的结果集中只有一条数据,存的就是记录的那些字段的值
ResultSet rs=**ps.getGeneratedKeys()**

JDBC03_第2张图片

JDBC对分页的支持

  1. 假分页-内存分页
    第一次查询时返回所有的数据,将其存入List中,并从List中取出第一页数据,以后再查询时不访问数据库,而是直接从List中取值,首次查询慢,后续查询快,十分消耗内存,适合数据量非常小的小项目
  2. 真分页-物理分页
    每次查询都是通过SQL查询出满足条件的当前这一页的数据,每次查询的速度一样,节约内存, 适合任何项目
  3. oracle分页的SQL
 select * from( select e.*,rownum r from (select * from emp order by empno) e ) where r between 11 and 20;
  1. mysql分页的SQL
select * from emp order by empno limit 11,10
  1. 页数:page 每页显示的条数:pageSize
    start=(page-1)*pageSize+1,end=pageSize*page

    JDBC03_第3张图片

你可能感兴趣的:(数据库,jdbc,数据,事务,管理)