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

教材学习内容总结

  • 数据库本身是个独立运行的应用程序

  • 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找

  • JDBC可以解决更换数据库、应用跨平台的需求

  • JDBC(Java DataBase Connectivity)是Java联机数据库的标准规范,定义一组标准类与接口,应用程序需要联机数据库时调用这组标准API,标准API中接口会由数据库厂商操作,称为JDBC驱动程序

  • JDBC标准分为两部分:JDBC应用程序开发者接口、JDBC驱动程序开发者接口(数据库厂商操作驱动程序时的规范)

  • 调用JDBC应用程序开发者接口,相关API主要在java.sql与javax.sql两个包中

  • 联机数据库,需要在classpath中设定JDBC驱动程序

  • 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自变量,提示数据库开始交易

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

因为还没有注册那个XAM,所以代码也看不出具体问题

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

这周的学习感觉除了具体的有关封装还有抛出异常处理等代码能够理解,其他的较为困难,可能是因为数据库对我们来说比较新,在officce下操作Access具体功能尚且不熟悉,更别提用语言实现。课余时间会按照老师提示的步骤,在仔细看。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60
第四周 300/1300 2/9 30/90

参考资料

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

  1. 201521123027 <java程序设计>第九周学习总结

    1.本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 2.书面作业 Q1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什 ...

  2. 20145220java程序设计第九周学习总结

    20145220java程序设计第九周学习总结 教材学习内容总结 JBDC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商对接口直接操作,开发人员无须接触底层数据可驱动程序的差异 ...

  3. 201771010134杨其菊《面向对象程序设计java》第九周学习总结

                                                                      第九周学习总结 第一部分:理论知识 异常.断言和调试.日志 1.捕获 ...

  4. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  5. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 马凯军201771010116《面向对象与程序设计Java》第九周学习总结

    一.理论知识部分 异常.日志.断言和调试 1.异常:在程序的执行过程中所发生的异常事件,它中断指令的正常执行. 2.Java的异常处理机制可以控制程序从错误产生的位置转移到能够进行错误处理的位置. 3 ...

  9. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  10. 《Java》第九周学习总结

    下载mysql 选择mysql的管理软件 idea可以直接连接 然后用库运行程序,但是没有截图,,因为想在navicat上试试,可惜速度太慢了 打开idea又很慢,所以明天再更新

随机推荐

  1. 2016.9.14 JavaScript入门之七面向对象和函数

    1.JavaScript中的变量,可以是对象,具有相应的属性: 2.我们也能够使用构造函数创建对象.构造函数的函数给出了一个大写的名称,以使它清楚地表明它是一个构造函数. 在构造函数中,这个变量是指由 ...

  2. node body-parser

    var express = require('express'); var app = express(); var bodyParser = require('body-parser'); // p ...

  3. 链表 UVA 11988 Broken Keyboard (a.k.a. Beiju Text)

    题目传送门 题意:训练指南P244 分析:链表模拟,维护链表的head和tail指针 #include <bits/stdc++.h> using namespace std; const ...

  4. ReSharper 配置及用法(一)

    ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE.它包括一系列丰富的能大大增加C#和Visual Ba ...

  5. Surf特征提取分析

    Surf特征提取分析 Surf Hessian SIFT 读"H.Bay, T. Tuytelaars, L. V. Gool, SURF:Speed Up Robust Features[ ...

  6. html5调用手机相机并压缩、上传

    近日刚做的一个功能,要在app里使用内嵌页面进行图像的上传.从功能上看,原生的实现应该是最好的.毕竟页面上所有的东西都隔着一个浏览器,所有的实现都要依赖浏览器提供的接口,不同的浏览器对接口的实现又有差 ...

  7. [译]使用Continuous painting mode来分析页面的绘制状态

    Chrome Canary(Chrome “金丝雀版本”)目前已经支持Continuous painting mode,用于分析页面性能.这篇文章将会介绍怎么才能页面在绘制过程中找到问题和怎么利用这个 ...

  8. js 过滤敏感词

    <html> <head>     <title>Bad Words Example</title>     <script type=" ...

  9. 几种提高jQuery性能的代码

    1.jQuery对象缓存 如果同一元素被查找多次时,就应该将该jQuery对象缓存起来,不然每次查找都要遍历整个文档. 使用下边的代码做个简单的测试 <!DOCTYPE html PUBLIC ...

  10. ACM Coin Test

    Coin Test 时间限制:3000 ms  |  内存限制:65535 KB 难度:1   描述 As is known to all,if you throw a coin up and let ...