《Java技术》第八次作业
###(一)学习总结
1.用思维导图对本周的学习内容进行总结。
** 2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery()方法中使用动态参数时,为什么要使用PreparedStatement接口而不使用Statement,比较使用两种接口的不同之处。**
- 方法 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 getAirEnvironmentPresentAll(){
ArrayList list = new ArrayList();
String sql = "select * from airPresent";
try {
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while(rs.next()){
dto = new M_AirEnviromentPresentDTO();
dto.setId(rs.getInt("id"));
dto.setAirForecastPlace(rs.getString("airForecastPlace"));
dto.setForecastTime(rs.getString("forecastTime"));
dto.setTSPvalue(rs.getString("tspvalue"));
dto.setRemark(rs.getString("remark"));
list.add(dto);
}
}
catch (SQLException e) {
e.printStackTrace();
}
return list;
}`
- PreparedStatement接口和Statement接口的不同
•PreparedStatement 实例包含已编译的 SQL 语句。包含于 PreparedStatement 对象中的 SQL 语句可具有一个或多个 IN 参数。IN参数的值在 SQL 语句创建时未被指定,该语句为每个 IN 参数保留一个问号(“?”)作为占位符。每个问号的值必须在该语句执行之前,通过适当的setXXX 方法来提供。
•statement每次执行sql语句,相关数据库都要执行sql语句的编译
•由于 PreparedStatement 对象已预编译过,所以其执行速度要快于 Statement 对象。因此,多次执行的 SQL 语句经常创建为 PreparedStatement对象,以提高效率。
3.其他需要总结的内容。
- Java应用程序通过JDBC访问数据库时应该遵循五个步骤:
1. 加载(注册)适当的JDBC驱动程序
2. 建立数据库连接(通过DriverManager类的getConnection()方法完成,得到数据库连接对象)
3. .通过数据库连接对象的createStatement方法建立SQL语句对象(Statement,
PreparedStatement),执行SQL语句
4. 处理结果集(ResultSet):使用while循环读取结果
5. 关闭数据库连接
(二)实验总结
实验内容:
使用JDBC实现实验七的宠物商店
完成实验内容,代码上传到码云,注意,务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。
格式如下:
使用GUI,编写一个宠物商店管理系统实现对宠物信息的统一管理。假设宠物种类有猫、狗,宠物信息包括:编号、品种、年龄、数量、价格。系统启动进入登录界面,登录成功进入管理界面,否则提出错误信息后退出系统。
程序设计思路:根据老师给出的代码,理解其内容,做出相应的修改,完成宠物商店界面的设置
格式如下:
程序设计思路:
1.定义一个宠物信息PetItem类,定义宠物的编号、姓名、种类、年龄、价格、数量属性和get、set方法。
2、定义一个宠物店的信息DataBase类,宠物店里有哪些宠物,用集合来存储宠物信息。
3,、定义一个管理员访问信息Administrator类,当访问宠物商店时展示商店里有那些宠物,并且定义添加宠物和删除宠物的方法。
4、定义一个管理员管理宠物AdministratorSever类,定义方法展示所有的宠物,定义添加方法添加宠物。
5、定义一个Tool类,确定视图中登录界面和展示界面的窗口位置。
问题1:无论输入什么用户名密码,都能进入。
原因:用户名和密码的判断问题
解决方案:
`public boolean findAdminData(String name, String password) {
if ("shiziyu".equals(name) && "2015614840326".equals(password))
{
return true;
}
return false;
}
}`
(三)代码托管
- 码云commit历史截图