20145205 《Java程序设计》第9周学习总结
教材学习内容总结
第十六章
JDBC简介
撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找
JDBC目的:让Java程序设计人员在撰写数据库操作程序时可以有个统一的接口,无须依赖特定的数据库API,“写一个Java程序,操作所有数据库”
连接数据库
联机数据库,需要在classpath中设定JDBC驱动程序
基本数据库操作相关JDBC接口或类是为位于java.sql包中
Connection接口的操作对象是数据库联机代表对象
使用Statement、ResultSet
Statement是SQL描述的代表对象,可以使用executeUpdate()、executeQuery()等方法来执行SQL。
Statement的executeUpdate()方法用于SELECT等查询数据库的SQL,返回int结果,表示数据变动的笔数
Statement的executeQuery()方法返回java.sql.ResultSet对象,代表查询结果。
Statement的execute()方法用来执行SQL,返回true表示SQL执行将返回ResultSet作为查询结果。
使用PreparedStatement、CallableStatement
如果有些操作只是SQL语句当中某些参数会有所不同,其余的SQL子句皆相同,则可以使用java.sql.PreparedStatement。调用clearParametere()清除设置的参数,之后就能再次使用这个
PreparedStatement实例。
如果撰写数据库的预存程序,并想要使用JDBC来调用,则可使用java.sql.CallableStatement。必须调用prepareCall()建立CallableStatement异常,可以使用registerOutParameter()注册输出参数。
使用DataSource取得联机
让MessageDAO依赖于java.sql.DataSource接口,可以通过其定义的getConnection()方法取得Connection。
日后要修改数据库服务器主机位置,为了打算重复利用Connection对象而想要加入联机池机制等情况,这个MessageDAO都不用修改。
联机相关信息可以使用.properties设定。
使用ResultSet卷动、更新数据建立Statement或PreparedStatement实例时,可以指定结果集类型与并行方式。
批次更新
批次更新的限制是,SQL不能使SELECT,否则会抛出异常。
要支持批次更新,必须在JDBC URL 上附加rewriteBatchedStatements =true 参数才有实际的作用。
Blob与Clob
BLOB用于存储大量的二进制数据,像是图档、影音档等;CLOB用于存储大量的文字数据。
可以把BLOB字段对应byte[]或输入\输出串流。
交易简介
在交易管理时,仅想要撤回某个SQL执行点,则可以设定存储点。
通过JDBC得知数据库是否支持某个隔离行为设定,可以通过Connection的getMetaData()取得DatabaseMetadata对象,通过DatabaseMetadata的supportTransaction-IsolationLevel()得知是否支持某个隔离行为。
metadata简介Metadata即“诠读数据的数据”,可以通过connection的getMetaData()方法取得
DatabaseMetaData对象,可以取得数据库整体信息,而ResultSet表示查询到的数据,可以通过ResultSet的getMetaData()方法,取得ResultSetMetaData对象。
RowSet简介javax.sql.RowSet接口,代表数据的列集合。可以对列集合进行增删改查。通过setCommand()设定查询指令,通过execute()执行查询指令以填充数据。
其他(感悟、思考等,可选)
本周因为个人的一些事情对于学习比较懈怠,没有很好的区分开生活和学习,让生活中的事情影响了学习,但是人本来就是感性的,也是我们区别于蛮夷的分界线,面对挫折或是困难或是低谷或是发现人心难测更或是世道艰险,我们难度真的可以一带而过,去机械的做自己的工作?即使是干了几十年的老医生,面对死亡尚且难过多日,更不说事情发生在自己的身上的时候,那个中滋味又能与谁堪说,欠下总会补上的,但是错过的就是错过了。
学习进度条
| 代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
|---|---|---|---|---|
| 目标 | 4500行 | 25篇 | 350小时 | |
| 第一周 | 100/100 | 1/2 | 15/15 | |
| 第二周 | 150/250 | 1/3 | 12/27 | |
| 第三周 | 400/650 | 1/4 | 22/49 | |
| 第四周 | 510/1160 | 1/5 | 32/81 | |
| 第五周 | 831/1991 | 1/6 | 35/116 | |
| 第六周 | 945/1991 | 2/6 | 26/142 | |
| 第七周 | 236/2227 | 3/9 | 18/160 | |
| 第八周 | 267/2494 | 2/11 | 18/178 | |
| 第九周 | 136/2620 | 2/13 | 10/188 |
参考资料
20145205 《Java程序设计》第9周学习总结的更多相关文章
- 20145213《Java程序设计》第九周学习总结
20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...
- 20145213《Java程序设计》第二周学习总结
20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...
- 20145213《Java程序设计》第一周学习总结
20145213<Java程序设计>第一周学习总结 教材学习内容总结 期待了一个寒假,终于见识到了神秘的娄老师和他的Java课.虽说算不上金风玉露一相逢,没有胜却人间无数也是情理之中,但娄 ...
- 21045308刘昊阳 《Java程序设计》第九周学习总结
21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...
- 20145330孙文馨 《Java程序设计》第一周学习总结
20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...
- 20145337 《Java程序设计》第九周学习总结
20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...
- 20145337 《Java程序设计》第二周学习总结
20145337 <Java程序设计>第二周学习总结 教材学习内容总结 Java可分基本类型与类类型: 基本类型分整数(short.int.long).字节(byte).浮点数(float ...
- 20145218《Java程序设计》第一周学习总结
20145218 <Java程序设计>第一周学习总结 教材学习内容总结 今天下午看了Java学习的视频,感觉很是新奇,之前觉得Java学起来是艰难枯燥的,但通过第一章的学习觉得如果自己可以 ...
- 《Java程序设计》第九周学习总结
20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...
- 《Java程序设计》第二周学习总结
20145224陈颢文<Java程序设计>第二周学习总结 教材学习内容总结 一.类型.变量与运算符 1.类型 整数: 可细分为为short整数(占2字节),int整数(占4字节),long ...
随机推荐
- 【经验】在CSS中定义超链接样式a:link、a:visited、a:hover、a:active的顺序
以前用CSS一直没有遇到过这个问题,在最近给一个本科同学做的项目里面.出现一些问题,搜索引擎查了一些网站和资料,发现很多人问到这个问题,给出的结果我试了试,大部分都不正确. 给出我试的顺序,可能会对大 ...
- 【Android开发实践】android.view.InflateException: Binary XML file line #12: Error inflating class fragment问题解决
一般出现的原因是fragment引入的包错了,应该是import android.app.ListFragment;而不是import android.support.v4.app.ListFragm ...
- UVa2326
理解:区域覆盖.注意1,属于的区间有大小颠倒的情况:注意2,看图 ,两排房间公用一条走廊(for instance 1->3 4->6 不可公用) #include<iostrea ...
- 正则表达式工具RegexBuddy使用教程
1. 界面介绍 (1)初始界面选项介绍 (2)如何使用匹配 (3)如何使用正则替换 (4)如何使用Debug http://www.cnblogs.com/tsql/p/5860893.html
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- mac os x 启用apache 和 php
Mac OS X 是自带 Apache 和 PHP 的,但默认情况下并没有开启,此文说明如何启用这两个服务,环境基于 Mac OS X 10.6 Snow Leopard. 启动 Apache 命令行 ...
- spring+IOC+DI+AOP优点分析(一)
Spring是什么: Spring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于sprin ...
- vue学习
2016年12月2日 今天学习Vue.js,对于未知的知识,一脸懵逼.记录学习新知识的路程,为以后学习更多的新知识一个引导.以后学会了之后再回来看看, 回忆一下会与不会的区别在哪.这样以后学习可以更快 ...
- Git配置姓名和邮箱问题
今天在安装Git for windows完成后,配置姓名和邮箱.按照廖雪峰老师的步骤,在开始菜单里找到"Git"->"Git Bash",单击后并没有跳出 ...
- SQL Server 2008 R2 企业版/开发版/标准版(中英文下载,带序列号)
一. 简体中文 1. SQL Server 2008 R2 Developer (x86, x64, ia64) – DVD (Chinese-Simplified) File Name: cn_sq ...