20165315 第七周学习总结
学习中遇到的问题和解决过程
- 第11章的代码运行需要
MySQL
插件,但是我在安装过程中出现了很多问题,没有安装成功,后来听娄老师说下载XAMPP
也是可以的,但是虽然安装成功了,无法使用
解决过程:
经过查询网络,我在liudingbobo的博客中找到了解决方法:首先点击进入Manage Servers
界面,然后使MySQL database
运行,如下图所示:
接着在终端输入如下图指令即可进入MySQL
数据库啦
也可以点击Go to Application
,进入phpMyAdmin
中的MySQL
,如下图所示:
- 在进行实验时,一开始设置
test
目录时,不会弹出绿色进度条
解决过程:
创建了一个java文件后,点击黄色小灯泡中的Create Test
即可创建
学习总结
第十一章
- 关于
MySQL
的下载、安装、启动、建立链接、建立数据库、创建表等知识点,由于电脑系统不同,而且问题的解决过程中有讲解,就不加赘述了 - 顺序查询
- ResultSet对象一次只能看到一个数据行,使用
next()
方法移到下一个数据行,next()
方法最初的查询位置,即游标位置,位于第一行的前面。```next()``方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false
- ResultSet对象一次只能看到一个数据行,使用
- 控制游标
- 为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象
Statement stmt = con.createStatement(int type ,int concurrency);
- 为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象
- 条件与排序查询
where
子语句- 一般格式:
select 字段 from 表名 where 条件
- 字段值和固定值比较
- 字段值在某个区间范围
- 一般格式:
- 排序
- 用
order by
子语句对记录排序
- 用
- 更新、添加与删除操作
- 更新
update 表 set 字段 = 新值 where <条件子句>
- 添加
insert into 表(字段列表) values (对应的具体的记录)
或
insert into 表 values (对应的具体的记录)
- 删除
delete from 表名 where <条件子句>
- 更新
- 使用预处理语句
- 优点
- 减轻了数据库的负担,而且也提高了访问数据库的速度
- 使用通配符
?
- 在sql对象执行之前,必须调用相应的方法设置通配符
?
代表的具体值
- 在sql对象执行之前,必须调用相应的方法设置通配符
- 优点
- 通用查询:编写一个类,只要用户将数据库名、SQL语句传递给该类对象,那么该对象就用一个二维数组返回查询的记录
- 结果集ResultSet对象rs调用
getMetaData()
方法返回一个ResultSetMetaData对象(结果集的元数据对象):
ResultSetMetaData metaData = rs.getMetaData();
- metaData调用
getColumnCount()
方法就可以返回结果集rs中的列的数目:
int columnCount = metaData.getColumnCount();
- metaData调用
getColumnName(int i)
方法就可以返回结果集rs中的第i列的名字:
String columnName = metaData.getColumnName(i);
- 结果集ResultSet对象rs调用
- 事务
- 事务及处理
- 事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行
- JDBC事务处理步骤
- 用
setAutoCommit(booean b)
方法关闭自动提交模式 - 用
commit()
方法处理事务 - 用
rollback()
方法处理事务失败
- 用
- 事务及处理
第五周课下测试错题总结
如果超出JVM运行能力之外,如“byte[] arr=new byte[10241024600];”会抛出java.lang.OutOfMemoryError异常
A.ture
B.false
正确答案:
B
解析:
对于严重的错误,通过Error类来描述,而对于非严重的问题,则是通过Exception类来进行描述的
下列关于public int read(byte[] b, int off, int len)方法的叙述,正确的是
A.此方法覆盖了InputStream类中的read方法
B.此方法从该输入流中将最多len个字节的数据读入一个byte数组中
C.此方法返回读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回-1
D.如果b为null,则会抛出IndexOutOfBoundsException异常
正确答案:
ABC
解析:
D项中不是抛出IndexOutOfBoundsException
异常,而是会抛出NullPointerException
异常
下列选项中,可以通过编译的是
InputStream is = new BufferedInputStream(new FileInputStream("zoo.txt"));
InputStream wrapper = new _____;
A.BufferedInputStream
B.FileInputStream
C.BufferedWriter
D.ObjectInputStream
E.ObjectOutputStream
F.BufferedReader
正确答案:
AD
解析:
B不能通过编译
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.
正确答案:
BDE
解析:
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.
第六周课下测试错题总结
已知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(); )
正确答案:
BE
下列关于泛型类的子类的说法,正确的个数为
①LinkedList泛型类创建一个链表结构的对象。
②Stack泛型类创建一个堆栈对象
③HashMap泛型类创建散列映射
④DelayQueue泛型类创建一个无界阻塞队列
⑤TreeSet泛型类创建树映射
⑥Vector创建可增长的对象数组
A.6
B.5
C.4
D.3
正确答案:
B
解析:
⑤TreeSet
下列关于正则表达式的说法,正确的是
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地址
正确答案:
ABDE
解析:
C项中\b\w{6}\b
匹配刚好6个字符的单词,而不是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?)
下列说法正确的是
A.Java 8之前,对日期进行运算,使用DateFormat类
B.需要人类能理解的时间,建议使用Date类的toString()
C.现在国际上通用的标准时间是GMT
D.new Date(System.currentTimeMillis())等价于new Date()
正确答案:
D
解析:
程序中new Date()
就等价于new Date(System.currentTimeMillis())
下列哪个表达式是正确的(无编译错误)
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
解析:
A、B、D类型不匹配
对于如下代码,下列哪个叙述是正确的?
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
解析:
B选项应输出game
,C选项应输出ArrayIndexOutOfBoundsException
错误
码云链接
https://gitee.com/BESTI-IS-JAVA-2018/ch1/tree/master/src
代码截图
ps.这次的代码提交还是没有对每个代码具体功能进行分类,下次开始会进行相关分类~