JDBC_2
事物ACID:
原子性(atomicity):组成事物处理的语句形成了一个逻辑单元,不能只执行其中的一部分
一致性(consistency):在事物处理执行前后,数据库是一致的
隔离性(isolcation):一个事物处理对另一个事务处理没有影响
持续性(durability):事务处理的效果能够被永久保存下来
1. 常用API
Connection.setAutoCommit(false);关闭自动提交,打开事物
Connection.commit();提交事物
Connection.rollback();滚回事物;
Savepointsp = conn.setSavepoint();设置保存点
Conn.rollback(sp);滚回到保存点
Conn.setTransactionIsolation(connection.TRANSACTION-READ_COMMITTED);设置隔离级别,可以通过connection中的常量设置
2. 隔离级别
读未提交(ReadUncommitted)
读已提交(ReadCommitted)
可重复读(RepeatableRead)
可序列化(Serializable)
获取插入的ID:conn.prepareStatement(sql,Statement.return_generates_keys);
resultSetrs = ps.getGeneratedKeys();
if(rs.next())user.setId(rs.getInt(1));
Mysql的selectlast_insert_id()可以获取之前插入的记录的id,但这只是Mysql才有的函数,只有对自增长的列发生自增长的赋值后才会导致一个key的产生,并且用getGereratedKeys()返回
反射:
构造函数:Class。getConstructors()获取所有构造函数
Class.getConstructor()获取到class中带有指定类型参数的构造函数
Constructor.newInstance()使用构造函数创建对象,传入指定参数
方法:class.getMethods()获取所有公有方法,包括继承的
Class.getDeclaredMethods()获取所有类中定义的方法,包括私有的
Class.getMethod(String,class…)获取指定方法名和参数类型的方法
属性:Class.getFields()
获取所有公有属性(包括父类继承的)
Class.getDeclaredFields()
获取所有定义的属性(包括私有的)
Class.getField(String)
获取指定属性(公有属性)
Class.getDeclaredField(String)
获取指定属性(定义属性)
Field.set(Object, Object)
设置指定对象的属性值
Field.get(Object)
获取指定对象的属性值
Filed.setAccessible(Boolean)
设置访问权限