《Java技术》第八次作业

(一)学习总结

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

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

  • executeQuery()方法 用于产生单个结果集的语句,例如 SELECT 语句

  • conn = JDBCUtils.getConnection(1);
    stmt = conn.createStatement();
    String sql = "select no,kind,age,number,price from pet";
    rs = stmt.executeQuery(sql);

  • executeUpdate()方法 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。

  • conn = JDBCUtils.getConnection(1);
    String sql = "insert into pet (no,kind,age,number,price) values (?,?,?,?,?)";
    pstmt = conn.prepareStatement(sql);
    pstmt.setString(1, pet.getNo());
    pstmt.setString(2,pet.getKind());
    pstmt.setString(3,pet.getAge());
    pstmt.setString(4,pet.getNumber());
    pstmt.setString(5,pet.getPrice());
    int num = pstmt.executeUpdate();

  • PreparedStatement是java.sql包下面的一个接口,用来执行SQL语句查询,通过调用connection.preparedStatement(sql)方法可以获得PreparedStatment对象。数据库系统会对sql语句进行预编译处理(如果JDBC驱动支持的话),预处理语句将被预先编译好,这条预编译的sql查询语句能在将来的查询中重用,这样一来,它比Statement对象生成的查询速度更快。

(二)实验总结

  • 程序设计思路:设计一个登录类,定义属性用户名、密码,方法判断用户名及密码,设一个登录界面登录,设计一个宠物类,定义属性宠物属性编号、品种、年龄、数量、价格,建一个数据类用来存放数据,建一个宠物管理界面,可以添加修改删除宠物,也可以退出,设计一个工具来,定义界面方法,设计一个获取数据类来访问数据,设计一个数据库类,登录连接数据库

  • 实验问题分析:

    问题1:

    public int delPetItem(String no){
    ArrayList data = queryPetItem();
    for(int i = 0; i < data.size();i++){
    PetItem pet = data.get(i);
    if(pet.getNumber().equals(no)){
    if(adminDao.delPetItem(no)){
    return 1;
    }else{
    return 0;
    }
    }
    }
    return 2;
    }
    原因:类型错写为boolean类型

    解决方案:返回的是boolean,而在调用的为int型,改为int型返回的int型就可以了

类图:

解决方案:把调用方法都错写为了addPetItem(),分别改为updatePetItem()、delPetItem()方法

(三)代码托管

  • 码云commit历史截图
posted @ 2017-05-17 19:38  yonghui!  阅读(122)  评论(0编辑  收藏  举报