(一)学习总结
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){
ArrayListdata = 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历史截图