热门标签 | 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



推荐阅读
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • DAO(Data Access Object)模式是一种用于抽象和封装所有对数据库或其他持久化机制访问的方法,它通过提供一个统一的接口来隐藏底层数据访问的复杂性。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • MySQL初级篇——字符串、日期时间、流程控制函数的相关应用
    文章目录:1.字符串函数2.日期时间函数2.1获取日期时间2.2日期与时间戳的转换2.3获取年月日、时分秒、星期数、天数等函数2.4时间和秒钟的转换2. ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • oracle c3p0 dword 60,web_day10 dbcp c3p0 dbutils
    createdatabasemydbcharactersetutf8;alertdatabasemydbcharactersetutf8;1.自定义连接池为了不去经常创建连接和释放 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在使用 Cacti 进行监控时,发现已运行的转码机未产生流量,导致 Cacti 监控界面显示该转码机处于宕机状态。进一步检查 Cacti 日志,发现数据库中存在 SQL 查询失败的问题,错误代码为 145。此问题可能是由于数据库表损坏或索引失效所致,建议对相关表进行修复操作以恢复监控功能。 ... [详细]
  • 在本文中,我们将探讨如何在Docker环境中高效地管理和利用数据库。首先,需要安装Docker Desktop以确保本地环境准备就绪。接下来,可以从Docker Hub中选择合适的数据库镜像,并通过简单的命令将其拉取到本地。此外,我们还将介绍如何配置和优化这些数据库容器,以实现最佳性能和安全性。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 在使用 SQL Server 时,连接故障是用户最常见的问题之一。通常,连接 SQL Server 的方法有两种:一种是通过 SQL Server 自带的客户端工具,例如 SQL Server Management Studio;另一种是通过第三方应用程序或开发工具进行连接。本文将详细分析导致连接故障的常见原因,并提供相应的解决策略,帮助用户有效排除连接问题。 ... [详细]
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社区 版权所有