20165318 2017-2018-2 《Java程序设计》第七周学习总结

目录

学习过程遇到的问题及总结

  • 问题1:初始化数据库时出现以下问题:

  • 解决方法1:由于我电脑之前装过MySQL,初始化过数据库,因此不能再次初始化,不用管这个错误,继续进行下面的步骤就行了。

  • 问题2:由于我电脑之前装过MySQL,所以就下载了Navicat来运行MySQL,但是连接原有的数据库时,出现以下问题:

  • 解决方法2:参考MYSQL错误代码#1045 Access denied for user 'root'@'localhost'

    解决步骤如下:

    1、停止MYSQL服务,CMD打开DOS窗口,输入 "net stop mysql ";不过有时候不停止也是无所谓;

    2、在CMD命令行窗口,进入MYSQL安装目录 比如“F:\mysql-5.7.21-winx64\bin”

    3、在第二点的命令窗口输入命令为:"mysqld-nt --skip-grant-tables",作用是,进入mysql安全模式,即当mysql起来后,不用输入密码就能进入数据库。

    4、这时候可以进入数据库后,给自己的数据库重新设置密码就可以了!

  • 问题3:下过MySQL之后,我又安装了XAMPP,但是一直不能使用,最初是出现以下问题:

    12:19:13 PM [mysql] Error: MySQL shutdown unexpectedly.
12:19:13 PM [mysql] This may be due to a blocked port, missing dependencies,
12:19:13 PM [mysql] improper privileges, a crash, or a shutdown by another method
12:19:13 PM [mysql] Press the Logs button to view error logs and check
12:19:13 PM [mysql] the Windows Event Viewer for more clues
12:19:13 PM [mysql] If you need more help, copy and post this
12:19:13 PM [mysql] entire log window on the forums

  • 多次查找之后,暂时还是没有解决方法,但是我的Navicat可以正常运行,所以还是能后完成本周的代码测试任务。

返回目录

教材学习内容总结

第11章 JDBC与MySQL数据库

11.1 MySQL数据库管理系统

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

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

11.2 连接MySQL数据库

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

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

代码如下:

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

11.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);
}

11.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子语句对记录排序

11.5 更新、添加与删除操作

1.更新

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

2.添加

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

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

3.删除

delete from 表名 where <条件子句>

11.6 使用预处理语句

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

11.7 事务

JDBC事务处理步骤

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

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

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

返回目录

错题总结

第五周错题总结

  • 错题1:
如果超出JVM运行能力之外,如“byte[] arr=new byte[1024*1024*600];”会抛出java.lang.OutOfMemoryError异常。
A .true
B .false 正确答案:B
  • 解析1:对于严重的错误,通过Error类来描述,而对于非严重的问题,则是通过Exception类来进行描述的,本题不是严重的错误,应该通过Exception类来描述。

  • 错题2:

下列关于public int read(byte[] b, int off, int len)方法的叙述,正确的是
A .此方法覆盖了InputStream类中的read方法。
B .此方法从该输入流中将最多len个字节的数据读入一个byte数组中。
C .此方法返回读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回-1。
D .如果b为null,则会抛出IndexOutOfBoundsException异常。 正确答案:A B C
  • 解析2:D项异常抛出错误,应该抛出NullPointerException异常。

  • 错题3:

下列选项中,可以通过编译的是
InputStream is = new BufferedInputStream(new FileInputStream("zoo.txt"));
InputStream wrapper = new _____;
A .BufferedInputStream
B .FileInputStream
C .BufferedWriter
D .ObjectInputStream
E .ObjectOutputStream
F .BufferedReader 正确答案:A D
  • 解析3:由于BufferedInputStreamObjectInputStream都是InputStream的子类,因此可以使用InputStream wrapper = new _____;语句,wrapper为上转型对象。

  • 错题4:

What is the result of executing the following code?
String line;
Console c = System.console();
Writer w = c.writer();
if ((line = c.readLine()) != null)
w.append(line);
w.flush();
A .The code runs without error but prints nothing.
B .The code prints what was entered by the user.
C .An ArrayIndexOutOfBoundsException might be thrown.
D .A NullPointerException might be thrown.
E .An IOException might be thrown.
F .The code does not compile. 正确答案:B D E
  • 解析4:This is correct code for reading a line from the console and writing it back out to the console, making option B correct.

    Options D and E are also correct. If no console is available, a NullPointerException is thrown. The append() method throws anIOException.

第六周错题总结

  • 错题1:
已知list是一个合法的集合引用,getCollection()返回一个合法集合的引用,下列合法的是?
A .for(Object o : list)
B .for(Object o : getCollection())
C .for(Object o : list.iterator())
D .for(lterator i ; list.iterator() ; i.hasNext() )
E .for(lterator i=list.iterator(); i.hasNext(); ) 正确答案:B E
  • 解析1:for(Object o : )该语句是依次输出数组中的元素,list不是数组,A项错误。list.iterator是单个引用,C项错误。D项中,i没有赋初值,错误。

  • 错题2:

下列关于泛型类的子类的说法,正确的个数为
①LinkedList<E>泛型类创建一个链表结构的对象。
②Stack<E>泛型类创建一个堆栈对象。
③HashMap<E>泛型类创建散列映射。
④DelayQueue<E>泛型类创建一个无界阻塞队列。
⑤TreeSet<E>泛型类创建树映射。
⑥Vector<E>创建可增长的对象数组。
A .6
B .5
C .4
D .3 正确答案:B
  • 解析2:⑤TreeSet泛型类创建树集。由于对HashMap不了解,误认为只有HashMap<K,V>泛型类创建散列映像而HashMap不是。

  • 错题3:

下列关于正则表达式的说法,正确的是
A .\ba\w*\b匹配以字母a开头的单词
B .\d+匹配1个或更多连续的数字。
C .\b\w{6}\b 匹配6个及以上字符的单词。
D .[0-9]代表的含意与\d就是完全一致的:一位数字
E .\S+匹配不包含空白符的字符串。
F .(\d{1,3}\.){3}\d{1,3}用来匹配 IP地址。 正确答案:A B D E
  • 解析3:C项:\b\w{6}\b 匹配刚好6个字符的单词。

    F项: IP地址中每个数字都不能大于255,该表达式忽略了这个约束条件。正确的是((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。

    我没有选B项,因为我误以为\d+也可以匹配1个或更多不连续的数字。

  • 错题4:

下列说法正确的是
A .Java 8之前,对日期进行运算,使用DateFormat类。
B .需要人类能理解的时间,建议使用Date类的toString()。
C .现在国际上通用的标准时间是GMT。
D .new Date(System.currentTimeMillis())等价于new Date() 正确答案:D
  • 解析4:通过查询API,由Data的构造方法可知, Date(System.currentTimeMillis())等价于new Date(),D项正确。

  • 错题5:

下列哪个表达式是正确的(无编译错误)?
A .int m =Float.parseFloat("567");
B .int m =Short.parseShort("567")
C .byte m =Integer.parseInt("2");
D .float m =Float.parseDouble("2.9") 正确答案:C
  • 解析5:A项:float型比int型精度高,应使用类型转换,转换为int;B项:567超出short型变量的范围;D项:同A项,double型比float型精度高,应使用类型转换,转换为float。

  • 错题6:

对于如下代码,下列哪个叙述是正确的?
public class E {
public static void main (String args[]) {
String s1 = args[1];
String s2 = args[2];
String s3 = args[3];
System.out.println(s3);
}
}
A .程序出现编译错误。
B .无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。
C .无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。
D .无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。 正确答案:D
  • 解析6:没有看清题目,没有在命令行中执行,而是将java E也作为输入,结果输出错误。

返回目录

代码托管

码云链接:

代码统计

返回目录

参考链接

MYSQL错误代码#1045 Access denied for user 'root'@'localhost'

XAMPP运行MySQL entire log window on the forums解决方案

20165318 2017-2018-2 《Java程序设计》第七周学习总结的更多相关文章

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

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

  2. 20165318 2017-2018-2 《Java程序设计》第九周学习总结

    20165318 2017-2018-2 <Java程序设计>第九周学习总结 目录 学习过程遇到的问题及总结 教材学习内容总结 第13章 Java网络编程 代码托管 代码统计 学习过程遇到 ...

  3. 20165318 2017-2018-2 《Java程序设计》第二周学习总结

    20165318 2017-2018-2 <Java程序设计>第二周学习总结 教材学习内容总结 本周学习了第二章和第三章的内容,掌握了Java中基本数据类型.数组.运算符.表达式和语句等方 ...

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

    20165318 2017-2018-2 <Java程序设计>第一周学习总结 教材内容学习总结 第一章主要对Java平台进行了简单的介绍,并讲解了如何搭建Java环境. Java平台概论 ...

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

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

  6. 学号 20175212 《Java程序设计》第九周学习总结

    学号 20175212 <Java程序设计>第九周学习总结 教材学习内容总结 一.MySQL数据库管理系统 1.在官网上下载并安装MySQL 2.在IDEA中输入测试代码Connectio ...

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

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

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

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

  9. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  10. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

随机推荐

  1. EventLog组件读写事件日志

    使用.Net中的EventLog控件使您可以访问或自定义Windows 事件日志,事件日志记录关于重要的软件或硬件事件的信息.通过 EventLog,可以读取现有日志,向日志中写入项,创建或删除事件源 ...

  2. Spark你需要知道这些

    谈到 Spark,我们总是强调它比 Hadoop 更高效.为什么它可以更高效呢?是因为它优先使用内存存储?还是因为它拥有比 MapReduce 更简单高效的计算模型? 与 Hadoop 作业的区别 我 ...

  3. hdu 2612

    Find a way Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  4. 悟空模式-java-单例模式

    [那座山,正当顶上,有一块仙石.其石有三丈六尺五寸高,有二丈四尺围圆.三丈六尺五寸高,按周天三百六十五度:二丈四尺围圆,按政历二十四气.上有九窍八孔,按九宫八卦.四面更无树木遮阴,左右倒有芝兰相衬.盖 ...

  5. C# 运算符 ++在前与++在后实例分析。

    首先记住计算技巧“++在前先+1,++在后后+1”. static void Main(string[] args) { int i = 10; Console.WriteLine(i);//此时i的 ...

  6. Linux:网络工具 nc

    虽然叫nc不过用起来非常方便. 选项 - Use IPv4 only - Use IPv6 only -U, --unixsock Use Unix domain sockets only -C, - ...

  7. 项目小结:手机邮箱正则,URL各种判断返回页面,input输入框输入符合却获取不到问题

    1.手机邮箱正则 近两年出来很多新号码,听说199什么的都有了- -导致以前的正则不能用了....这就很难过,总是过一段时间出一种新号码.因此,我决定使用返朴归真的手机正则. 手机正则:var reg ...

  8. Angular 框架介绍

    库和框架的区别 jQuery:库 库一般都是封装了一些常用的方法 自己手动去调用这些方法,来完成我们的功能code $('#txt').val('我是小明'); $('div').text('xx') ...

  9. 微信小程序之雪碧图(css script)

    今天有朋友问我关于微信小程序中如何在不占用大量网络带宽的情况下快速加载图片,我给他推荐了两种方式 1.雪碧图(css script),有过前端经验的朋友应该都有接触过. 2.懒加载. 由于时间关系我就 ...

  10. EF_CRUD