20165316 第七周学习总结

20165316 第七周学习总结

学习中遇到的问题和解决过程

主要还是数据库 MySQL 的安装比较麻烦,为此我还重装了 Java


书上原话:MySQL 数据库服务器启动后,应用程序为了能和数据库交互信息,必须首先和 MySQL 数据库服务器上的数据库建立连接。目前在开发中常用的链接数据库的方式是加载 JDBC-数据库驱动,即 JDBC 调用本地的 JDBC-数据库驱动和相应的数据库建立链接。

然而,Java9 根本不支持 lib/ext 的扩展形式(之前我在4.15的总结中也发现 JRE 扩展时的问题),于是我重新下载了 Java8 。之后按书上教程操作得到正常的输出结果。

顺带一提,书上的 Navicat for MySQL 是一种 MySQL 客户端管理工具,还可以采用 打开 xampp 上 MySQL 对应的admin --> 在 phpmyadmin 中编辑 的方式,可以避免宿舍网速的尴尬。

学习内容总结

第十一章

  1. java.sql 包中的 DriverManager 类有两个用于建立连接的类方法(static 方法):Connection getConnection(java.lang.String, java.lang.String, java.lang.String) ,Connection getConnection(java.lang.String)。表中记录有汉字的话在 String 字段添加 characterEncoding 参数,取值 gb2312 或 utf-8。
  2. ResultSet 对象由按“列”(字段)组织的数据行构成。ResultSet对象一次只能看到一个数据行,使用 next() 方法移到下一个数据行,next() 方法最初的查询位置,即游标位置,位于第一行的前面。next() 方法向下(向后、数据行号大的方向)移动游标,移动成功返回true,否则返回false。
  3. 为了得到一个可滚动的结果集,需使用下述方法获得一个Statement对象
    Statement stmt = con.createStatement(int type ,int concurrency);
    根据参数 type 、concurrency 的取值情况,stmt 返回相应的结果集。(详细见 P333)
  4. 条件与排序查询:
    • where 子语句
      • 一般格式: select 字段 from 表名 where 条件
    • order by 子语句对记录进行排序
      • order by <字段名>
  5. 更新、添加与删除操作
    • 更新
      • update 表 set 字段 = 新值 where <条件子句>
    • 添加
      • insert into 表(字段列表) values (对应的具体的记录)
      • insert into 表 values (对应的具体的记录)
    • 删除
      • delete from 表名 where <条件子句>
  6. 预处理语句
    • 优点:减轻数据库负担,提高访问数据库速度。
    • 方法:连接对象 con 可以调用 prepareStatement(String sql) 方法对参数 sql 指定的 SQL 语句进行编译处理,生成该数据库底层的内部命令,并将该命令封装在 PreparedStatement 对象中,调用下列方法使得该底层内部命令被数据库执行:
      • ResultSet executQuery()
      • boolean execute()
      • int executUpdate()
    • 使用通配符
      • 在sql对象执行之前,必须调用相应的方法设置通配符?代表的具体值。
  7. 通用查询:编写一个类,只要用户将数据库名、SQL语句传递给该类对象,那么该对象就用一个二维数组返回查询的记录。
    • 结果集ResultSet对象rs调用getMetaData()方法返回一个ResultSetMetaData对象(结果集的元数据对象)。
    • metaData调用getColumnCount()方法就可以返回结果集rs中的列的数目。
    • metaData调用getColumnName(int i)方法就可以返回结果集rs中的第i列的名字。
  8. 事务:事务由一组SQL语句组成,所谓事务处理是指:应用程序保证事务中的SQL语句要么全部都执行,要么一个都不执行(类似于 PS 里的“动作”)
    • JDBC事务处理步骤
      • 用setAutoCommit(booean b)方法关闭自动提交模式
      • 用commit()方法处理事务
      • 用rollback()方法处理事务失败

代码托管

码云链接

程序截图

posted @ 2018-04-15 18:07  treebeard  阅读(164)  评论(1编辑  收藏  举报