2045331 《Java程序设计》第09周学习总结

教材学习内容总结

第十六章 整合数据库

16.1.1JDBC简介

1、JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性。

2、厂商在操作JDBC驱动程序时,依方式可将驱动程序分为4种类型:

·Type 1:JDBC-ODBC Bridge Driver
·Type 2:Native API Driver
·Type 3:JDbc-Net Driver
·Type 4:Native Protocol Driver

3、1、JDBC标准分为两部分:

(1)JDBC应用程序开发者接口(2)JDBC驱动程序开发者接口

16.1.2连接数据库

1、注册Java操作对象: 操作Driver接口的对象是JDBC进行数据库存取的起点。

2、取得Connection操作对象

3、关闭Connection操作对象: 可以自动关闭

16.1.3Statement与ResultSet

1、执行SQL,必须取得java.sql.Statement,使用Connection的createStatement()建立Statement对象

2、取得Statement对象后,使用executeUpdate()(在表中插入一笔数据,返回int结果,表示数据变动的笔数)、executeQuery()(用于SELECT等查询数据库的SQL,返回java.sql.ResultSet对象,代表查询结果,会是一笔一笔的数据)

3、Statement或ResultSet不使用时,使用close()关掉,Statement关闭时,所关联的ResultSet也会自动关闭

16.2.1DateSource联机

1、通过getConnection()方法取得Connection.

16.2.2使用ResultSet卷动、更新数据

1、在ResultSet时,默认可以使用next()移动数据光标至下一笔数据,而后使用getXXX()方法来取得数据

2、在数据光标移动的API上,可以使用absolute()、afterLast()、beforeFirst()、first()、last()进行绝对位置移动,使用relative()、previous()、next()进行相对位置移动,移动成功返回true。

3、可使用isAfterLast()、isBeforeFirst()、isFrist()、isLast()判断当前位置。

16.2.3批次更新

1、可以使用addBatch()方法收集SQL,并使用executeBatch()方法将所收集的SQL传送出去。

2、所有收集的SQl,然后传送给数据库,再通过一次网络传送给数据库,节省了时间。

16.2.5交易

1、交易的四个基本要求是原子性、一致性、隔离行为与持续性,依英文字母首字母简称为ACID。

2、在交易管理时,仅想要撤回某个SQL执行点,则可以设定存储点。

3、幻读:同一交易期间,读取到的数据笔数不一致。

16.2.6metadata

1、取得数据库的整体信息,取得域名字段类型等信息

16.2.7RowSet简介

JDBC的数据列集合(电子表格、XML数据或其他具有列集合概念的数据源),可以使用RowSet对列集合进行增删查改。

第十七章 反射与类加载器

1、Java真正需要某个类时才会加载对应的.class文档,而非在程序启动就加载所有类。java.lang.Class的实例代表Java应用程序运行时加载的.class文档。可以通过Object的getClass()方法,或者通过.class常量取得每个对象对应的Class对象,如果是基本类型,也可以使用对应的打包类加上.TYPE取得Class对象。例如:Integer.TYPE可取得代表int的Class对象。

第十八章 窗口程序设计

1、泛型也可以仅定义在方法上,可在方法返回类型前使用定义泛型,之后就可以使用T来定义返回类型、参数类型,或在方法内声明变量、转换类型等。

2、在定义泛型时,使用extends限制指定T实际类型时,必须是某类的子类。

3、定义enum时有个特定值类本体语法,可用于操作接口或重新定义父类方法。

4、定义enum时可以自行定义构造函数,条件是不得为公开构造函数,也不可以在构造函数中调用super()。

代码调试中的问题和解决过程

1、java.lang.reflect.Method实例是方法的代表对象,可以使用invoke()方法来动态调用指定的方法。

package cc.openhome;

import static java.lang.System.out;

public class ClassInfo {
public static void main(String[] args) {
Class clz = String.class;
out.println("類別名稱:" + clz.getName());
out.println("是否為介面:" + clz.isInterface());
out.println("是否為基本型態:" + clz.isPrimitive());
out.println("是否為陣列物件:" + clz.isArray());
out.println("父類別名稱:" + clz.getSuperclass().getName());
}
}

2、由同一类加载器载入的.class文档,只会有一个Class实例。如果同一.class文档由两个不同的类加载器载入,则会有两份不同的Class实例。

package cc.openhome;

import static java.lang.System.out;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader; public class ClassLoaderDemo {
public static void main(String[] args) {
try {
String path = args[0]; // 測試路徑
String clzName = args[1]; // 測試類別
Class clz1 = loadClassFrom(path, clzName);
out.println(clz1);
Class clz2 = loadClassFrom(path, clzName);
out.println(clz2);
out.printf("clz1 與 clz2 為%s實例",
clz1 == clz2 ? "相同" : "不同");
} catch (ArrayIndexOutOfBoundsException e) {
out.println("沒有指定類別載入路徑與名稱");
} catch (MalformedURLException e) {
out.println("載入路徑錯誤");
} catch (ClassNotFoundException e) {
out.println("找不到指定的類別");
}
} private static Class loadClassFrom(String path, String clzName)
throws ClassNotFoundException, MalformedURLException {
ClassLoader loader = new URLClassLoader(new URL[] {new URL(path)});
return loader.loadClass(clzName);
}
}

其他(感悟、思考等,可选)

java课本终于学完了,不过这只是一个开始,前面有很多学得不扎实的地方,刚好趁这个假期好好通过视频课程补一下。

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时  
第九周 331/331 2/2 20/20

参考资料

2045331 《Java程序设计》第09周学习总结的更多相关文章

  1. 20155334 2016-2017-2 《Java程序设计》第二周学习总结

    20155334 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 java中的基本类型 整数:有short.int.long三种 字节:byte 字符:cha ...

  2. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  3. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  4. 20145213《Java程序设计》第一周学习总结

    20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 20145337 《Java程序设计》第二周学习总结

    20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...

  9. 20145218《Java程序设计》第一周学习总结

    20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...

  10. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

随机推荐

  1. js 连等赋值 分析

    JavaScript权威指南-第6版 4.11 赋值表达式 提到了连等赋值的情况,但是解释的不够详细,所以在此总结下: 首先看书上最重要的一句话: 这句话总结下就是: A = B ; // 整个表达式 ...

  2. Hibernate的检索方式--查询数据的方式

    Hibernate 提供了以下几种检索对象的方式1导航对象图检索方式: 根据已经加载的对象导航到其他对象(根据已经加载的对象,导航到其他对象-例如一对多的查询)2OID 检索方式: 按照对象的 OID ...

  3. Zabbix数据库表结构

    上一篇:Zabbix分布式监控 acknowledges 当出现报错的时候记录 查看着张表记录了一个事件 actions 动作 自动发现 问题告警 恢复告警 自动注册 alerts 报警信息 同web ...

  4. Hadoop伪分布安装详解(四)

    目录: 1.修改主机名和用户名 2.配置静态IP地址 3.配置SSH无密码连接 4.安装JDK1.7 5.配置Hadoop 6.安装Mysql 7.安装Hive 8.安装Hbase 9.安装Sqoop ...

  5. Hadoop伪分布安装详解(二)

    目录: 1.修改主机名和用户名 2.配置静态IP地址 3.配置SSH无密码连接 4.安装JDK1.7 5.配置Hadoop 6.安装Mysql 7.安装Hive 8.安装Hbase 9.安装Sqoop ...

  6. Exchange Database Status(Copy Status ,Content Index State,QueueLength,Move Status...)

    Copy Status Description Mounted The active copy is online and accepting client connections. Only the ...

  7. 移除 URL 中的 index.php

    w 将.htaaccess 放至该站点根目录. http://codeigniter.org.cn/user_guide/general/urls.html 如果你的 Apache 服务器启用了 mo ...

  8. vue下给title配置图标.ico

    在根目录下放入要作为浏览网站时看到的网页title里的图标.如 32*32 后缀为.ico的图 然后再项目中build文件夹中的,webpack.dev.conf.js文件加入一句代码,加入完重启即可 ...

  9. 雨痕 的《Python学习笔记》--附脑图(转)

    原文:http://www.pythoner.com/148.html 近日,在某微博上看到有人推荐了 雨痕 的<Python学习笔记>,从github上下载下来看了下,确实很不错. 注意 ...

  10. 利用wget批量下载http目录下文件

    原理:下载你需要down的目录页面的index.html,可能名字不是如此!!!之后用wget下载该文件里包含的所有链接! 例如:wget -vE -rLnp -nH --tries=20 --tim ...