Java事务的类型主要有三种:JDBC事务,JTA(Java Transaction API)事务,容器事务,常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供,容器事务大多是基于JTA完成,这是一个基于JNDI的,相当负责的API实现。
JDBC的一切行为包括事务是基于一个Connection的,在JDBC中是通过Connection对象进行事务管理。在JDBC中,常用的和事务相关的方法是: setAutoCommit、commit、rollback等。
事务的特点:
原子性(atomicity):组成事务处理的语句形成了一个逻辑单元,不能只执行其中的一部分。
一致性(consistency):在事务处理执行前后,数据库是一致的(两个账户要么都变,或者都不变)。
隔离性(isolcation):一个事务处理对另一个事务处理没有影响。
持续性(durability):事务处理的效果能够被永久保存下来 。
JDBC对事务的支持:
connection.setAutoCommit(false);//打开事务,关闭自动提交事务
connection.commit();//提交事务。
connection.rollback();//回滚事务。
DatabaseMetaData 数据库元数据
DatabaseMetaData meta = connection.getMetaData();
通过DatabaseMetaData可以获得数据库相关的信息如:数据库版本、数据库名、数据库厂商信息、是否支持事务、是否支持某种事务隔离级别,是否支持滚动结果集等。
ResultSetMetaData 结果集元数据
ResultSetMetaData meta = rs.getMetaData();
通过ResultSetMetaData可以获得结果有几列、各列名、各列别名、各列类型等。
可以将ResultSet放入Map(key:列名 value:列值)。
用反射