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”,设置搜索时间段,搜索本周提交历史,并截图。

原文地址:https://www.cnblogs.com/miao0512/p/6875247.html