在JDBC的操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元。我们通过提交commit()或是回退rollback()来结束事务的操作。关于事务操作的方法都位于接口java.sql.Connection中。
首先我们要注意,在JDBC中,事务操作默认是自动提交。也就是说,一条对的更新表达式代表一项事务操作。操作成功后,系统将自动调用commit()来提交,否则将调用rollback()来回退。
其次,在JDBC中,可以通过调用setAutoCommit(false)来禁止自动提交。之后就可以把多个操作的表达式作为一个事务,在操作完成 后调用commit()来进行整体提交。倘若其中一个表达式操作失败,都不会执行到commit(),并且将产生响应的异常。此时就可以在异常捕获时调用 rollback()进行回退。这样做可以保持多次更新操作后,相关数据的一致性。
85、获得一个类的类对象有哪些方式?
- 方法1:类型.class,例如:String.class
- 方法2:对象.getClass(),例如:"hello".getClass()
- 方法3:Class.forName(),例如:Class.forName("java.lang.String")
public class Client {
public static void main(String[] args) {
Class<?> cType1 = Test.class;
}
}
class Test{
static {
System.out.println("static block");
}
{
System.out.println("dynamic block");
}
}
package com.lynstudy;
public class Client {
public static void main(String[] args) {
try {
Class<?> cType2 = Class.forName("com.lynstudy.Test");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
class Test{
static {
System.out.println("static block");
}
{
System.out.println("dynamic block");
}
}
package com.lynstudy;
public class Client {
public static void main(String[] args) {
Class<?> cType3 = new Test().getClass();
}
}
class Test{
static {
System.out.println("static block");
}
{
System.out.println("dynamic block");
}
}
总结:三种方式均能够获得Class对象,区别是方法一不执行静态块和动态构造块,方法二执行静态块、不执行动态构造块,方法三需要创建对象,静态块和动态构造块均会执行;
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-61031-22.html
小米一万毫安时的69元确实不错就是太重了
是穷