《Java程序设计》第9周学习总结
20145333 《Java程序设计》第9周学习总结
教材学习内容总结
JDBC
-
JDBC全名Java DataBase Connectivity,是Java联机数据库的标准规范。定义了一组标准类与接口,应用程序需要联机数据库时调用这组标准API,而标准API中的接口会由数据库厂商操作,通常称为JDBC驱动程序。
-
JDBC标准主要分为两个部分:JDBC应用程序开发者接口以及JDBC驱动程序开发者接口。
-
应用程序需要联机数据库,就是调用JDBC应用程序开发者接口,相关API主要在java.sql与javax.sql两个包。
-
依操作方式可将驱动程序分为四种类型:JDBC-ODBC Bridge Driver、Native API Driver、JDBC-Net Driver、Native Protocol Driver。
-
JDBC目的:让Java程序设计人员在撰写数据库操作程序时可以有个统一的接口,无须依赖特定的数据库API,“写一个Java程序,操作所有数据库”
依操作方式将驱动程序分为四种类型:
(1)Type1:JDBC-ODBC Bridge Driver:由Microsoft主导的数据库连接标准,参考ODBC制定而来
(2)Type2:Native API Driver:会以原生方式,调用数据库提供的原生数据库,JDBC的方法调用会转换为原生链接库,4种类型中最快的驱动程序,使用前必须先在各平台进行驱动程序的安装设定
(3)Type3:JDBC-Net Driver:将JDBC方法转换为特定的网络协议调用,目的是远程与数据库特定的中介服务器或组件,中介服务器或组件再与数据库进行操作,可以跨程序,更换数据库系统只需更换中介组件,弹性好,速度慢
(4)Type4:Native Protocol Driver:驱动程序会将JDBC调用转换为与数据库特定的网络协议,跨程序,弹性没有Type3好,最常见的驱动器类型
-
连接数据库,必须要有厂商操作的JDBC驱动程序,必须在CLASSPATH中设定驱动程序JAR文档
-
要取得数据库联机,必须的几个动作
-
注册Driver操作对象
-
取得Connection操作对象
-
关闭Connection操作对象
-
执行SQL,必须取得java.sql.Statement,使用Connection的createStatement()建立Statement对象
-
使用Connnection的createStatement()建立Statement对象
取得Statement对象后,使用executeUpdate()(在表中插入一笔数据,返回int结果,表示数据变动的笔数)、executeQuery()(用于SELECT等查询数据库的SQL,返回java.sql.ResultSet对象,代表查询结果,会是一笔一笔的数据) -
使用resultSet的next()移动至下一笔数据,返回true或false表示是否有下一笔数据,接着可以使用getXXX()取得数据
-
Statement的execute()可以用来执行SQL,并可测试SQL是执行查询或更新,返回true表示SQL执行将返回ReaultSet作为查询结果,可以使用getResultSet()取得ResultSet结果,返回false,表示SQL执行会返回更新笔数或没有结果,可以用getUpdateCount()取得更新笔数
Statement或ResultSet不使用时,使用close()关掉,Statement关闭时,所关联的ResultSet也会自动关闭 -
使用addBatch()方法来收集SQL,并使用executeBatch()方法将所收集的SQL传送出去
-
SQL的执行顺序就是addBath()时的顺序
-
文档写入数据库,可以在数据库表格字段上使用BLOB(Binary Large Object),用于存储大量的二进制数据或CLOB数据类型(Character Large Object),用于储存大量的文字数据
-
JDBC中提供了java.sql.Blob与java.sql.Clob两个类分别代表BLOB与CLOB数据
-
通过PreparedStatement的setBlob()来设定Blob对象,读取数据时,可以通过ResultSet的getBlob()取得Blob对象
-
交易的4个基本要求是原子性、一致性、隔离行为与持续性(ACID)
JDBC可以操作可以操作Connection的setAutoCommit()方法,给它false自变量,提示数据库开始交易
反射与类加载器
-
反射:.class文档反映了类基本信息,从Class等API取得类信息的方式称为反射
-
建立ClassLoader实例
1.使用URLClassLoader来产生新的类加载器,需要java.net.URL作为其参数来指定类加载的搜索路径。使用URLClassLoader的loadClass()方法加载指定类时,会先委托父加载器代为搜索。
2.由同一类加载器载入的.class文档,只会有一个Class实例。如果同一.class文档由两个不同的类加载器载入,则会有两份不同的Class实例。
3.path可以输入不在System Loader以上层级类加载器搜索路径的其他路径。
本周代码托管截图
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 3500行 | 15篇 | 400小时 | |
第一周 | 100/100 | 2/2 | 20/20 | |
第二周 | 150/250 | 1/3 | 18/38 | |
第三周 | 100/350 | 1/4 | 22/60 | |
第四周 | 300/650 | 1/5 | 30/90 | |
第五周 | 100/750 | 1/6 | 20/110 | |
第六周 | 350/1100 | 1/7 | 25/135 | |
第七周 | 250/1350 | 1/8 | 25/160 | |
第八周 | 250/1600 | 1/9 | 25/185 | |
第九周 | 300/1900 | 1/10 | 25/210 |
posted on 2016-05-01 16:25 20145333茹翔 阅读(110) 评论(0) 编辑 收藏 举报