20165203《Java程序设计》第七周Java学习总结

教材学习内容总结

第11章 JDBC与MySQL数据库

  • MySQL数据库管理系统

    MySQL数据库管理系统,简称MySQL,是世界上最流行的开源数据库管理系统,其社区版(MySQL Community Edition)是最流行的免费下载的开源数据库管理系统。

    下载安装后,进行启动MySQL数据库服务器,并建立连接,建立数据库,创建表等操作。

  • 连接MySQL数据库

    1.下载JDBC-MySQL数据库驱动

    2.加载JDBC-MySQL数据库驱动

    代码如下:

    try{
    Class.forName("com.mysql.jdbc.Driver");
    }
    catch(Exception e){}

    3.连接数据库

    使用Connection getConnection(java.lang.String) 方法建立连接的代码如下:

    Connection con;
    String uri =
    "jdbc:mysql://192.168.100.1:3306/students?user=r oot&password=&useSSL=true";
    try{
    con = DriverManager.getConnection(uri); //连接代码
    }
    catch(SQLException e){
    System.out.println(e);
    }

    使用

    Connection getConnection(java.lang.String, java.lang.String, java.lang.String)

    方法建立连接的代码如下:

Connection con;
String uri = "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true";
String user ="root";
String password ="";
try{
con = DriverManager.getConnection(uri,user,password); //连接代码
}
catch(SQLException e){
System.out.println(e);
}

4.注意汉字问题

  • 查询操作

    具体步骤:

    1.得到SQL查询语句对象
try{  Statement sql=con.createStatement();
}
catch(SQLException e ){}

2.处理查询结果

注意:

无论字段是何种属性,总可以使用

getString(int columnIndex)或

getString(String columnName)

方法返回字段值的串表示

3.关闭连接

顺序查询:

指ResultSet对象一次只能看到一个数据行,使用next()方法移到下一个数据行,next()方法最初的查询位置,即游标位置,位于第一行的前面。next()方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false。

控制游标:

为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象。

Statement stmt = con.createStatement(int type ,int concurrency);

条件与排序查询:

  1. where子语句

    一般格式:

    select 字段 from 表名 where 条件

    2.排序

    用order by子语句对记录排序
  • 更新、添加与删除操作

    1.更新

    update 表 set 字段 = 新值 where <条件子句>

    2.添加

    insert into 表(字段列表) values (对应的具体的记录)



    insert into 表 values (对应的具体的记录)

    3.删除

    delete from 表名 where <条件子句>

  • 使用预处理语句

Connection和某个数据库建立了连接对象con,那么con就可以调用prepareStatement(String sql)方法对参数sql指定的SQL语句进行预编译处理,生成该数据库底层的内部命令,并将该命令封装在PreparedStatement对象中,那么该对象调用下列方法都可以使得该底层内部命令被数据库执行。
  • 事务

    JDBC事务处理步骤

    1.用setAutoCommit(booean b)方法关闭自动提交模式

    2.用commit()方法处理事务

    3.用rollback()方法处理事务失败

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

Q1:想总结一下hibernatejdbc连接数据库的优劣比较

A1: 主要从内存消耗,运行效率,开发效率三个方面来分析,参考jdbc与hibernate的优缺点比较

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

Q:在运行Example11_1时,出现了如图所示情况。

A:在学习伙伴的帮助下,在命令行终端输入sudo apt-get install mysql-server mysql-client命令,安装MySQL,之后问题解决。

代码托管

上周考试错题总结

Q1:下列关于异常的说法,错误的是

A.Java使用throws抛出一个异常,使用throw声明方法可能抛出异常。

B.执行System.out.println(3/0);语句会报ArithmeticException异常。

C.Java中的错误是以对象的方式呈现为java.lang.Throwable的各种子类实例。

D.方法parseInt()在执行过程中可能抛出DataFormatException异常。

正解:AD

知识点:

  • Java使用throw抛出一个异常,使用throws声明方法可能抛出异常。

    -方法parseInt()在执行过程中可能抛出NumberFormatException异常。

Q2: 如果超出JVM运行能力之外,如“byte[] arr=new

byte[1024 * 1024 *600];”会抛出java.lang.OutOfMemory

Error异常。

A.true

B.false

正解:B

知识点: 对于严重的错误,通过Error类来描述,而对于非严重的问题,则是通过Exception类来进行描述的。

Q3:InputStream类继承自FileInputStream,可以以字节为单位读取文件。

A.true

B.false

正解:B

知识点:InputStream类是父类,FileInputStream是子类

Q4:下列关于TreeSet泛型类常用方法的介绍,正确的是

A.public boolean contains(Object o) 如果此 set 包含指定的元素,则返回 true。如果指定对象无法与该 set 中的当前元素进行比较,或不包含,则返回false。

B.public boolean add(E e)将指定的元素添加到此 set。如果此 set已经包含这样的元素,则该调用不改变此 set 并返回 false。

C.public boolean addAll(Collection<? extends E> c)将指定 collection 中的所有元素添加到此 set 中。如果此 set 由于调用而发生更改,则返回 true。

D.public E lower(E e) 返回此 set 中严格小于给定元素的最大元素;如果不存在这样的元素,则返回 null。

正解:BCD

知识点:如果指定对象无法与该 set 中的当前元素进行比较,则抛出ClassCastException异常。

Q5:下列说法正确的是

A.hasMoreTokens()方法返回语言符号的计数个数。

B.StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。

C.字符串分析器的计数变量的初始值等于字符串中的单词数目。

D.与split()方法不同的是,StringTokenizer对象不使用正则表达式作为分割标记。

正解:BCD

知识点:计数变量的值大于0,该方法返回true。否则返回false。

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

本周主要学习了数据库,在安装MySQL时出现了一些小波折,不过经过自己查找问题的原因以及小伙伴的帮助下,问题都迎刃而解了,再次感谢我的学习伙伴们。

学习进度条

~ 代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 48/48 1/1 20/20
第二周 390/438 2/3 18/38
第三周 886/1304 1/4 18/56
第四周 1105/2409 1/5 30/86
第五周 1229/3196 1/6 20/106
第六周 1147/4343 2/8 25/131
第七周 1862/3668 1/9 20/151

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

  1. 20145203 盖泽双《Java程序设计》第一周的学习总结

    20145203 盖泽双<Java程序设计>第一周学习总结 教材学习内容总结 第一章 1.Java是一门完全面向对象,安全可靠,与平台无关的编程语言. 2.Java现由Java SE.Ja ...

  2. 201521123027 <java程序设计>第七周学习总结

    1.本周学习总结 2.书面作业 Q1.ArrayList代码分析 1.1 解释ArrayList的contains源代码 答: 源代码: //contains()方法 public boolean c ...

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

    教材学习内容总结 第二章 (一)标识符 注意: 标识符由字母.下画线.美元符号和数字组成,长度不受限制. 标识符第一个字符不能是数学字符. 标识符不能是关键字. 标识符不能是true.false和nu ...

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

    教材学习内容总结 第13章- URL类 InetAddress类 套接字 UDP数据报 广播数据报 Java远程调用(RMI) 教材学习中的问题和解决过程 1. URL类 URL类构造方法: 使用字符 ...

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

    20165203<Java程序设计>第九周学习总结 教材学习内容总结 URL类 URL类是java.net包中的一个重要的类,URL的实例封装着一个统一资源定位符,使用URL创建对象的应用 ...

  6. 20165203 2017-2018-2 《Java程序设计》第一周学习总结

    20165203 2017-2018-2<Java程序设计>第一周学习总结 教材学习内容总结 (一)Java的地位 Java是面向对象编程,并涉及网络.多线程等重要的基础知识,是一门很好的 ...

  7. 201871010106-丁宣元 《面向对象程序设计(java)》第七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nwn ...

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

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

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

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

随机推荐

  1. js子节点children和childnodes的用法

    想要获取子节点的数量,有几种办法. childNodes 它会把空的文本节点当成节点, <ul> 文本节点 <li>元素节点</li> 文本节点 <li> ...

  2. CH3101 阶乘分解

    题目链接 分解\(n!\)的质因数,输出相应的\(p_i\)和\(c_i\). 其中\(1\leq n\leq 10^6\).   考虑每一个质因子 \(p\) 在 \(n!\) 中出现的次数.显然, ...

  3. linux那些事

    useradd -m -d /home/changp -Gusers,dialout,video account_name 创建新的账号 passwd account_name 修改指定账号的密码

  4. insert sort

    插入排序将数据分为前面有序部分和后面无序部分,取无序部分的第一个元素插入到有序序列中. 注意与选择排序的区别. // insert sortvoid insertionSort(int arr[], ...

  5. P3014 [USACO11FEB]牛线Cow Line && 康托展开

    康托展开 康托展开为全排列到一个自然数的映射, 空间压缩效率很高. 简单来说, 康托展开就是一个全排列在所有此序列全排列字典序中的第 \(k\) 大, 这个 \(k\) 即是次全排列的康托展开. 康托 ...

  6. Hadoop生态圈-phoenix完全分布式部署以及常用命令介绍

    Hadoop生态圈-phoenix完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. phoenix只是一个插件,我们可以用hive给hbase套上一个JDBC壳,但是你 ...

  7. Vue.js学习笔记(二)

    Vue.js不支持IE8及以下的版本,因为vue使用了IE8无法模拟的ECMAScript5的特性,它支持所有兼容ECMAScript5的浏览器. <!DOCTYPE html> < ...

  8. Vue.js学习笔记(一)

    其它前端主流框架可以做的事,Vue.js几乎都可以做, nuxt框架:可以实现vue的服务器端渲染, weex:使用vue语法编写原生app. 基础内容 基础语法 MVVM设计模式 前端组件化 vue ...

  9. 解决spring中不同配置文件中存在name或者id相同的bean可能引起的问题

    小总结: 如果启用组件扫描,bean名称不同时,Spring将尝试创建一个bean,即使该类的bean已经在spring-config.xml中定义了. 但是,如果在spring配置文件中定义的bea ...

  10. nodejs 剪切图像在上传,并保存到指定路径下(./public/img/' + req.session.token + '.jpg‘)

    前jQuery端接收数据 function upAvatar(img){ console.log(img); // data:image/jpeg;base64,/9j/4AAQSkZJRgABAQA ...