zoukankan      html  css  js  c++  java
  • Java第八次作业

    (一)学习总结

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

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

    (1)方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
    方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。
    查询调用executeQuery(),针对于SELECT语句

    public ArrayList<Pet> queryAllData() {
    		Connection conn = null;
    		Statement stmt = null;
    		ResultSet rs = null;
    		ArrayList<Pet> list = new ArrayList<Pet>();
    		try {
    			conn = JDBCUtils.getConnection(1);
    			stmt = conn.createStatement();
    			String sql = "select no,variety,age,amount,money from pet";
    			rs = stmt.executeQuery(sql);
    			while (rs.next()) {
    				Pet thisPet = new Pet();
    				thisPet.setNo(rs.getString("no"));
    				thisPet.setVariety(rs.getString("variety"));
    				thisPet.setAge(rs.getString("age"));
    				thisPet.setAmount(rs.getString("amount"));
    				thisPet.setMoney(rs.getString("money"));
    				list.add(thisPet);
    			}
    			return list;
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			JDBCUtils.close(conn);
    		}
    		return null;
    	}
    public boolean addPet(Pet pet) {
    		Connection conn = null;
    		PreparedStatement pstmt = null;
    		boolean result = false;
    		try {
    			conn = JDBCUtils.getConnection(1);
    			String sql = "insert into pet (no,variety,age,amount,money) values (?,?,?,?,?)";
    			pstmt = conn.prepareStatement(sql);
    			pstmt.setString(1, pet.getNo());
    			pstmt.setString(2, pet.getVariety());
    			pstmt.setString(3, pet.getAge());
    			pstmt.setString(4, pet.getAmount());
    			pstmt.setString(4, pet.getMoney());
    			int num = pstmt.executeUpdate();
    			if (num > 0) {
    				result = true;
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			JDBCUtils.close(conn);
    		}
    		return result;
    	}
    

    (2)区别:PreparedStatement是预编译语句,支持批处理,能够减少对数据库资源的占用。
    Statement在每次调用时,都要重新进行编译。PreparedStatement能够编写动态查询语句。
    (3)优点:容易阅读,维护方便;批处理效果高,执行速度快;安全,可以防止sql注入攻击.

    (二)实验总结

    实验内容:
    使用JDBC实现实验七的宠物商店
    完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。

    格式如下:

    程序设计思路:首先,创建进入界面,选择注册或登录;点击注册,进入注册界面,进行注册;进行新用户注册,调转到登录界面,或者点击登录直接进入登录界面,显示宠物管理页面,显示宠物清单
    创建一个主方法类,建vo包宠物类,用户类,图片,工具类,view包用户界面,管理员界面,注册界面,登录界面链接数据库对上次的程序作修改。
    

    类图结构:

    问题1:修改完成后无法连接数据库
    原因:Java中的数据声明为英文与数据库中数据中用中文不匹配
    解决方案:将数据库中的姓名等属性修改成英文
    (三)代码托管
    https://git.oschina.net/hebau_cs15/FMM.git
    码云commit历史截图
    上传实验项目代码到码云,在码云项目中选择“统计-commits”,设置搜索时间段,搜索本周提交历史,并截图。

  • 相关阅读:
    16-异常
    Linux 常用命令
    项目依赖子项目的类
    Struts2
    博客园【上吊猫】
    LayUI【基本使用】
    idea中隐藏.iml文件
    Session 使用
    博客园右下角看板娘特效,多种样式可选
    枚举
  • 原文地址:https://www.cnblogs.com/miao0512/p/6875247.html
Copyright © 2011-2022 走看看