20145235 《Java程序设计》第9周学习总结
2016-05-01 19:45
363 查看
第十六章 整合数据库
JDBC
Java语言访问数据库的一种规范,是一套API。JDBC (Java Database Connectivity) API,即Java数据库编程接口,是一组标准的Java语言中的接口和类,使用这些接口和类,Java客户端程序可以访问各种不同类型的数据库。
比如建立数据库连接、执行SQL语句进行数据的存取操作。
注册Driver操作:与数据库建立连接的标准方法是调用DriverManager.getConnection方法。
该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。
DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。
Driver的方法connect使用这个URL来建立实际的连接。
取得Connection操作对象:要取得操作对象可以通过DriverManager的getConnection()。
关闭Connection操作对象:使用 close() 来关闭与数据库的连接,或可以使用尝试自动关闭资源语法来简化程序撰写。
Statement
Statement的executeQuery()方法则是用于SELECT等查询数据库的SQL,executeUpdate()会返回int结果,表示数据变动的笔数,executeQuery()会返回java.sql.ResultSet对象,代表查询的结果,查询的结果会是一笔一笔的数据。可以使用ResultSet的next()来移动至下一笔数据,它会返回 true 或 false表示是否有下一笔数据,接着可以使用getXXX()来取得数据。如果有些操作只是SQL语句中某些参数会有所不同,其余的SQL子句皆相同,则可以使用java.sql.PreparedStatement。
可以使用Connection的preparedStatement()方法创建好一个预编译(precompile)的SQL命令,其中参数会变动的部分,先指定“?”这个占位字符。
需要真正指定参数执行时,再使用相对应的setInt()、setString()等方法,指定“?”处真正应该有的参数。
反射与类加载器
Java真正需要某个类时才会加载对应的.class文档,而非在程序启动就加载所有类。java.lang.Class的实例代表Java应用程序运行时加载的.class文档。
可以通过Object的getClass()方法,或者通过.class常量取得每个对象对应的Class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。
例如:Integer.TYPE可取得代表int的Class对象。
如果事先不知道类名称,可以利用Class.forName()动态加载.class文档,取得Class对象之后,利用其newInstance()方法建立类实例。
java.lang.reflect.Method实例是方法的代表对象,可以使用invoke()方法来动态调用指定的方法。
自定义泛型
在定义泛型时,使用extends限定指定T实际类型时,必须是某类的子类。共变性(Covariance):B是A的子类Node可视为一种Node,称Node具有共变性。
通配字符“?”与extends限制T的类型,只能通过T声明的名称取得对象指定给Object,或将T声明的名称指定为null。
自定义枚举
enum定义了特殊的类,继承自java.lang.Enum。enum是个抽象类,无法直接实例化。
enum操作Comparable接口,ordinal的值是会使用enum枚举的成员顺序。equals()与hashCode()基本上继承了Object的行为,但被标示为final。
可以使用values()的方法,将内部维护Action枚举实例的数组复制后返回。
相关文章推荐
- 20145215《Java程序设计》第9周学习总结
- 深入理解Java虚拟机(四)-垃圾收集算法
- 图论最短路径算法-Floyd算法-JAVA代码实现
- 深入理解Java内存模型——锁
- 码农小汪-SPringMVC-基本的理解MVC 降低耦合性~依赖性
- java数组
- 20145237 《Java程序设计》第九周学习总结
- [Java]关于中文编码问题
- Spring 源码分析
- 深入理解Java内存模型——volatile
- 20145229《Java程序设计》第四次实验报告
- 20145222黄亚奇《Java程序设计》第9周学习总结
- Spring 整合 Quartz 实现动态定时任务
- 20145218 《Java程序设计》第9周学习总结
- java程序中参数值传递与引用传递问题
- java 操作solr
- 深入理解Java内存模型——顺序一致性
- 20145328 《Java程序设计》第9周学习总结
- 20145127《java程序设计》第九周学习总结
- 20145229吴姗珊 《Java程序设计》第9周总结