热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

201553382016-2017-2《Java程序设计》第九周学习总结教材学习内容总结第十六章整合数据库JDBC入门数据库本身是个独立运行的应用程序撰写应用程序是利用通信协议对数

20155338 2016-2017-2 《Java程序设计》第九周学习总结

教材学习内容总结

第十六章 整合数据库

JDBC入门

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

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

· JDBC(Java DataBase Connectivity)是Java联机数据库的标准规范

· 定义一组标准类与接口,应用程序需要联机数据库时调用这组标准API,标准API中接口会由数据库厂商操作,称为JDBC驱动程序

· JDBC标准分为两部分

· JDBC应用程序开发者接口

· JDBC驱动程序开发者接口

· 依操作方式可将驱动程序分为四种类型:1、JDBC-ODBC Bridge Driver;2、Native API Driver;3、JDBC-Net Driver;4、Native Protocol Driver

· Connection接口的操作对象是数据库联机代表对象,要取得Connection操作对象,可以通过DriverManager的getConnection()。

除了基本的用户名称、密码之外,还必须提供JDBC、URL,其定义了连接数据库时的协议、子协议或者数据源识别。

取得Connection对象之后,可以使用isClosed()方法测试与数据库连接是否关闭。在操作完之后,若确定不再需要连接,则必须使用close()来关闭与数据库的连接,以释放链接是相关的必要资源。

JDBC目的

让Java程序设计人员在撰写数据库操作程序时可以有个统一的接口,无须依赖特定的数据库API,“写一个Java程序,操作所有数据库”

·连接数据库

连接数据库,必须要有厂商操作的JDBC驱动程序,必须在CLASSPATH中设定驱动程序JAR文档
要取得数据库联机,必须的几个动作

注册Driver操作对象

取得Connection操作对象

关闭Connection操作对象

使用JDBC加载.class文件方法有四种

(1)使用Class.forName()

(2)自行建立Driver操作接口类的实例(直接撰写代码java.sql.Driver driver = new com.mysql.jdbc.Driver())

(3)启动JVM时指定jdbc.drivers属性(执行java命令时java-Djdbc.drivers=com.mysql.jdbc.Driver;XXXDriverYourProgram)指定多个驱动程序类,用分号间隔

(4)设定JAR中/service/java.sql.Driver文档

·取得Connection操作对象

“协议”在JDBC
URL中总是jdbc开始,“子协议”是桥接的驱动程序、数据库产品名称或联机机制,“数据源识别”标出数据库的地址、端口号、名称、用户、密码等信息

关闭Connection操作对象

取得Connection对象后,使用isClosed()方法测试与数据库的连接是否关闭,不再需要连接必须使用close()来关闭与数据库的连接,以释放连接时相关的必要资源,可以使用尝试自动关闭资源语法

使用Statement、ResultSet

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

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

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

日期时间在JDBC中,并不是使用java.util.Date,这个对象可代表的日期时间格式是“年、月、日、分、秒、毫秒”,在JDBC中要表示日期,是使用java.sql.Date,其日期格式是“年、月、日”,要表示时间的话则是使用java.sql.Time,其格式时间为”时、分、秒”,java.sql.Timestamp表示“时、分、秒、微秒”的格式。

JDBC进阶

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

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

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

·交易的四个基本要求是原子性、一致性、隔离行为与持续性,依英文字母首字母简称为ACID。
在交易管理时,仅想要撤回某个SQL执行点,则可以设定存储点。

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

·批次更新

·使用addBatch()方法来收集SQL,并使用executeBatch()方法将所收集的SQL传送出去

·SQL的执行顺序就是addBath()时的顺序

·Blob与Clob

·JDBC中提供了java.sql.Blob与java.sql.Clob两个类分别代表BLOB与CLOB数据

·通过PreparedStatement的setBlob()来设定Blob对象,读取数据时,可以通过ResultSet的getBlob()取得Blob对象

教材学习中的问题和解决过程

  • 问题1:定义注释时,可使用java.lang.annotation.Target.限定时可指定java.lang.annotation.ElementType的枚举值。但是在制作JavaDoc文件时,却默认不会将注释数据加入文件中,如果想,该怎样操作?

  • 解决过程:如果想要将注释数据加入文件,可以使用java.lang.annotation.Documented.。 默认父类设定的注释,不会被继承至子类,在定义注释时,设定java.lang.annotation.Inherited注释,就可以让注释被子类继承。

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

本周代码方面没有什么问题,精力大都在实验上
,详情请见本周实验二的博客。

代码托管

1071544-20170423230657991-1576868162.png

上周考试错题总结

  • NIO2中,可以使用()中的方法取出文件系统根目录信息。

    A .Path

    B .DirectoryStream

    C .FileStore

    D .FileSystem

• 正则表达式 zo* 匹配()

A .z

B .zo

C .zoo

D .zooooooooooooooooooooooooooo

正确答案: A B C D

结对及互评

点评过的同学博客和代码

  • 本周结对学习情况
    • 20155307
    • 结对照片
    • 结对学习内容
      • JDBC的目的
      • JDBC的简介
    • 20155332
    • 20155310
    • 20145209
    • 20155219
    • 20155229

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

本周学习的三张内容相较于前面的内容相对来说比较简单,但是我觉得更为实用,本周学习时间比较紧张,知识将几个代码跑了跑,后慢如果空出时间来的话一定将书上的代码都运行一下。

学习进度条

代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标5000行20篇400小时
第一周100/1001/17/7
第二周50/1501/28/15
第三周50/2001/310/25
第四周500/8001/420/45
第五周300/11001/520/65
第六周800/19001/632/97
第七周400/23002/830/127
第八周400/27001/923/150
第九周300/30002/1118/168
  • 计划学习时间:25小时

  • 实际学习时间:18小时

参考资料

  • Java学习笔记(第8版)

  • 《Java学习笔记(第8版)》学习指导


转:https://www.cnblogs.com/Hdywan/p/6754598.html



推荐阅读
  • 本文介绍了将mysql从5.6.15升级到5.7.15的详细步骤,包括关闭访问、备份旧库、备份权限、配置文件备份、关闭旧数据库、安装二进制、替换配置文件以及启动新数据库等操作。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文详细介绍了MysqlDump和mysqldump进行全库备份的相关知识,包括备份命令的使用方法、my.cnf配置文件的设置、binlog日志的位置指定、增量恢复的方式以及适用于innodb引擎和myisam引擎的备份方法。对于需要进行数据库备份的用户来说,本文提供了一些有价值的参考内容。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • mysql-cluster集群sql节点高可用keepalived的故障处理过程
    本文描述了mysql-cluster集群sql节点高可用keepalived的故障处理过程,包括故障发生时间、故障描述、故障分析等内容。根据keepalived的日志分析,发现bogus VRRP packet received on eth0 !!!等错误信息,进而导致vip地址失效,使得mysql-cluster的api无法访问。针对这个问题,本文提供了相应的解决方案。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • 我们有(据我所知)星型模式SQL数据库中的数据文件。该数据库有5个不同的文件,扩展名为 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
author-avatar
沉稳之固_300
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有