《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历史截图