《Java技术》第八次作业

《Java技术》第八次作业

(一)学习总结

1.用思维导图对本周的学习内容进行总结。

2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。

  • executeQuery()方法

    • 执行数据库更新的SQL语句,如INSETR、UPDATE、DELETE等语句,返回更新的记录数。
      conn = JDBCUtils.getConnection(1);
      stmt = conn.createStatement();
      String sql = "select no,type,age,number,price from pet";
      rs = stmt.executeQuery(sql);
    
  • executeUpdate()方法

    • 执行数据库查询操作,返回一个结果集对象。
      conn = JDBCUtils.getConnection(1);
      String sql = "insert into pet(no,type,age,number,price) values (?,?,?,?,?)";
      pstmt = conn.prepareStatement(sql);
      pstmt.setString(1, pet.getNo());
      pstmt.setString(2, pet.getType());
      pstmt.setString(3, pet.getAge());
      pstmt.setString(4, pet.getNumber());
      pstmt.setString(5,pet.getPrice());
      int num = pstmt.executeUpdate();
    
  • PreparedStatement接口和Statement接口的不同

    • PreparedStatement 实例包含已编译的 SQL 语句。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。
    • statement每次执行sql语句,相关数据库都要执行sql语句的编译
    • 由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement对象,以提高效率。

(二)实验总结

  • 实验内容:

    使用JDBC实现实验七的宠物商店
    完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构。

  • 程序设计思路:

    1.定义用户登录界面,编写登录验证类,在验证类中只是根据输入进来的用户名和密码进行验证,并没有注册功能,在编写图形界面时,再对用户名和密码进行验证,若登录成功,进入宠物商店管理界面。

    2.创建JDBCUtils类,负责数据库连接和关闭操作以及取得一个数据库的连接对象。

    3.定义宠物商店管理窗口类,定义查询、添加、修改、删除方法,设置窗口界面,在数据库中获取数据,添加到表格。

    4.创建管理类,实现宠物的添加、修改、删除方法。

    5.创建项目运行类,定义main方法,进行测试。

  • 类图结构:

  • 问题1:凡是遇到SQL语句,运行出现大批错误

  • 原因:没有将数据库的文件放置项目中。

  • 解决方案:找到数据库文件的保存位置,放置PetJDBC里。

(三)代码托管

  • 码云commit历史截图
posted @ 2017-05-16 23:28  lymm  阅读(215)  评论(0)    收藏  举报