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();
}
将【多条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
- JAVA项目实战学习笔记之批处理
- 学习笔记之《Android项目实战——手机安全卫士》
- Android:项目实战学习笔记
- Qt学习之---项目实战
- java实战项目视频学习
- Java学习笔记之Eclipse项目结构
- Java 8 实战学习笔记
- java实战项目+学习路线+学习建议
- 批处理学习笔记一
- 批处理命令学习笔记
- 批处理学习笔记1
- windows批处理学习笔记
- 批处理学习笔记。
- 批处理学习笔记
- 批处理学习笔记-小结
- 批处理学习笔记01
- 学习笔记 - 批处理1
- 学习笔记 - 批处理2
- http://blog.csdn.net/lmj623565791/article/details/37706355
- 编译原理之文法
- 自定义控件之drawText()方法理解
- Git 自学笔记 egit (分支管理 下)
- 构建分布式的协同过滤推荐系统
- JAVA项目实战学习笔记之批处理
- gstreamer中rtpjitterbuffer的定时器线程及重传请求代码分析
- PHP连接数据库&通过下拉列表及具体条件查询数据
- Shader Storage Block对象及其使用
- 移植tiobench到openwrt
- Linux基本命令之linux cd命令详解
- 409. Longest Palindrome
- javascript-文档碎片
- "error while loading shared libraries: xxx.so.x" 错误的原因和解决办法