20175318 2018-2019-2 《Java程序设计》第九周学习总结
教材学习内容总结
第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()方法处理事务失败
错题总结
下列关于public int read(byte[] b, int off, int len)方法的叙述,正确的是
A .此方法覆盖了InputStream类中的read方法。
B .此方法从该输入流中将最多len个字节的数据读入一个byte数组中。
C .此方法返回读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回-1。
D .如果b为null,则会抛出IndexOutOfBoundsException异常。
正确答案:A B C
解析:D项异常抛出错误,应该抛出NullPointerException异常。