PreparedStatement可以操作Blob类型的文件
PreparedStatement执行相同的预编译的SQL语句时,不会每次都重新编译。所以效率远高于Statement
使用addBatch()、executeBatch()和clearBatch
事务是一组逻辑处理单元,使数据从一种状态变为另一种状态
一组逻辑操作单元:一个或多个DML操作
事务处理(事务操作):保证所有事务都作为一个工作单元来执行,即使出现了故障,都不能改变这种执行方式。当在一个事务中执行多个操作时,要么所有的事务都被提交(commit),那么这些修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个事务回滚(rollback)到最初状态。
为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。
那些操作会导致数据的自动提交
DDL操作一旦执行,都会自动提交。
set autocommit=false 对DDL无效
DML默认情况下,一旦执行,就会自动提交。
set autocommit=false 就会取消DML自动提交
关闭连接时会自动提交数据
取消自动提交
提交数据
遇到异常进行回滚
原子性(Atomicity)
原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
一致性(Consistency)
事务必须使数据库从一个一致性状态变换到另外一个一致性状态。
隔离性(Isolation)
事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
持久性(Durability)
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。
读未提交——出现脏读、不可重复度、幻读
读已提交——出现不可重复度、幻读
可重复读——出现幻读
串行化——都可以解决,但是并发性差
**一般来说,数据库只要避免脏读就可以。 **
为解决开发中的数据库连接问题,采用数据库连接池技术。
javaweb是所有通过java语言编写可以通过浏览器访问的程序的总称
javaweb是基于请求和响应开发的
请求:请求是客户端向服务器发送数据,叫请求 Request
响应:服务器给客户端回传数据,叫响应 Response
请求和响应是成对出现的
web资源按实现的技术和呈现效果的不同,分为静态资源和动态资源
静态资源:html、css、js、mp4、jpg等等
动态资源:jsp页面、Servlet程序等
常用的服务器:Tomcat(轻量级javaweb服务器)、Jboss(支持所有JavaEE规范)
Servlet程序2.5版本是现在市面使用最多的版本
到了3.0之后,就是注解版本的Servlet使用
如何访问tomcat下的目录
localhost:8080/book/index.html
为数据库建立一个缓冲池,预先在缓冲池中放入一定量的连接当需要建立连接时,只需从缓冲池中取出一个,用完再放回去。