JAVA项目实战学习笔记之批处理

来源:互联网 发布:淘宝自定义装修教程 编辑:程序博客网 时间:2024/06/08 00:11
V_1.0 批处理:
      将【多条sql】保存到【同一个数据库操作对象ps】中,【一次性】将多条sql命令输送到
      数据库执行的过程。减少程序与数据库之间交互次数,节省时间,提升速度。
      
V_2.0 评价一个项目点:
      1.项目对于需求解决能力
      2.项目运行效率*****
      3.项目数据安全性
      4.项目可扩展性
      5.项目易用性
           
V_3.0 项目运行效率,消耗时间点:
       ***** 内存与硬盘交互,决定项目的运行效率
       ***** 连接通道建立和销毁,消耗时间---------数据库连接池管理方案
       ***** 输送sql,返回得到数据,消耗时间------批处理
       ***** 数据库执行sql,消耗时间  --------- 数据类型
                                                                                                 储存引擎
                                                                                                 触发器,存储过程
                                                                                                 水平分表,垂直分表,分区表
                                                                                                 索引查询
                                                                                                 主从表备份
                                                                                                 
V_4.0 使用传统的方式,添加20个部门,分析时间消耗点     


V_5.0  ps.executeUpdate() 与        ps.executeUpdate(sql)  有什么区别?
         ps.executeUpdate() 是直接从ps对象的【缓存区域】读取sql输送到数据库中
         ps.executeUpdate(sql),首先将sql编译,并保存到ps对象中【记忆存储区】,
                                                                            然后负责将【记忆存储区】备份到【缓存区】,然后再读取【缓存区】输送到数据库中
                                                                            
                                                                            
V_6.0 添加20个部门,暴露批处理过程存在的致命问题
       1.修改dept表结构
          alter table dept modify dname  varchar(6);   dname ='dept'+99   'dept100'>6 执行失败                                                                           
                                                                            
       2.如果批处理操作失败,在ps对象输送的sql中,会有部分的sql依然正常执行,此时增加的修改异常的成本   
       
       
V_7.0 批处理操作产生的脏数据的来源。
        1. 数据库在接收到外部输送的sql命令时,不会立刻执行。而是交给【事务对象】进行检测。
                          将检测报告通知数据库,由数据库决定当前事务包含的sql命令是否可以提交或则回滚  
        2. 在一个事务中,只要有一个sql出现语法错误,认为当前事务中所有的sql 都有问题。   
        3. 【事务对象】管理方式:
                      1.默认管理方式:1)事务对象行为【commit or rollback】是由数据库进行控制
                                  2)一个事务检测一条sql命令                   
       
                      2.人工手动管理方式:1) 事务对象行为【commit or rollback】由开发人员控制
                                     2) 一个事务对多条sql命令进行检测                                                                                                                                                                                                                                                                                              
       
 V_8.0  批处理操作中,事务管理方式必须是人工手动:
          1. mysql命令行:
                         start transaction;-----------通知数据库提供一个事务对象
                                                           将多条sql输送到同一个事务对象,进行检测
                         insert into dept values(200,'java_pro','sh');
                         insert into dept values(201,'pro','sh');
 
                         commit/rollback;
 
          2.java程序实现人工事务管理:
                          1. con.setAutoCommit(false);
                          
                          2. try{
                                  ps.executeUpdate(sql_1);
                                  ps.executeUpdate(sql_2);
                                  con.commit();
                               }catch(SQLException ex){
                                    con.rollback();
                               }
 
0 0
原创粉丝点击