12.28 复习日志
Java导论
- Access Specifiers 访问说明符:public,protected,private
- Access Modifiers 访问修饰符 :final,static,abstract,native,synchronized,transient,volatile,strictfp
- JVM(java虚拟机)的机器语言是byte code
- 在java中内存分配和释放时自动发生的,自动分配内存的过程称为Simple
- 源文件不属于Java体系结构的组件;
class文件,Java Object File和Java Compiler属于。 - JVM是负责在计算机上执行Java程序的应用程序
- Java API的相关类和接口放在package中
- 对象(Object)的特征称为methods
- native方法使平台dependent
- 当你执行一个application时,主方法首先被执行
- 当你想定义一个不能被实例化的类,需要在类前加abstract
- values()方法用于返回枚举中的所有值
- 定义character类型的字符时需用单引号括起来
- java编程中不支持Multiple inheritance using classes
- 动态多态用于定义具有多种形式的方法,专门执行不同的操作
- 多级继承允许子类从另一个子类继承
- 当运行异常发生时,an Exception is thrown by the JVM which can be handled by appropriate exceptioon Handlers?
- 如果检查异常没有被处理,将出现编译异常
- 非检查异常不强迫用户处理该异常
Java编程
- JDBC架构分为:JDBC应用程序层和JDBC驱动程序层
-
-
JDBC驱动程序有4种类型:
- JDBC ODBC桥驱动程序
- 本机API驱动程序
- 网络协议驱动程序
- 本机协议驱动程序:使用供应商特定的网络协议直接与数据库交互
使用JDBC API
JDBC API类和接口在Java.sql和javax.sql包中,常用的类和接口如下:
- DriverManager类:为数据库加载驱动程序
- Driver接口:表示数据库驱动程序。被所有JDBC驱动程序类实现
- Connection接口:在java应用程序和数据库之间建立连接
- Statement接口:向数据库发送SQL语句并获得执行结果
- ResultSet接口:存储从数据库中检索到的数据
- SQLException
加载驱动程序
方法:
1.使用java.lang.Class类的forName()静态方法
2.使用Driver MAnage类的registerDriver() 的静态方法
Sql的驱动类名:com.microsoft.sqlserver.jdbc.SQLServerDriver
连接到数据库
- URL的格式:protocol:subprotocol:subname
subprotocol 表示
statement接口的三个方法:
- ResultSet executeQuery ()—执行select语句并返回类型ResultSet的结果集
- int executeUpdate ()–执行insert、update、delete语句并返回受影响的行数
- boolean execute()-执行所有语句,并返回布尔值。如果执行结果时ResultSet的对象。该方法返回true。否则返回false。
处理SQL异常
SQLException类在java.sql包中,它派生自java.lang.Exception类,是checked Exception
访问结果集
结果集的类型
-
只读: CONCUR_READ_ONLY
-
只进:TYPE_FORWARD_ONLY
-
可滚动:TYPE_SCROLL_SENSITIVE(及时同步到数据库)
TYPE_SCROLL_INSENSITIVE(不能及时同步) -
可更新:CONCUR_UPDATABLE
如何创建具有这些返回值类型的语句?
createStatement()方法有以下几种重载形式: -
createStatement( ) --不接受任何参数,默认类型为只读,只进
-
createStatement(int resultsetType ,int resultsetConcurrency)
第一个参数表示结果集是可滚动还是只进,第二个参数表示结果集是只读还是可更新
ResultSet接口的方法
- boolean previous — 跳到前一行
- boolean next ------跳到下一行
- boolean absolute(int i) —跳到指定行
- boolean relative(int i) -----指针向前或向后跳转相对的行数,正数向前跳,负数向后跳
使用PreparedStatement对象创建
创建statement语句
String sql=" delete from book where ID=2";
Statement stmt=con.createStatement();
int count=stmt.excuteUpdate(sql);
创建PreparedStatement语句
String sql=" delete from book where ID=?";
PreparedStatement ps=con.prepareStatement(sql);
sql.setInt(5);
int count=ps.executeUpdate();
preparedStatement接口的executeUpdate()方法中没有参数
管理数据库事务
-
提交事务
- 隐式:默认自动提交
- 显式:需先将提交模式变为手动,在手动调用commit()方法提交事务
-
con.setAutoCommit(false);
con.commit();
回滚事务
- Connection类的rollback()方法用来回滚事务;
-
con.rollback();