实验11:20220319 1+X 中级实操考试(id:3097)

您所在的位置:网站首页 java大数据应用开发中级证书 实验11:20220319 1+X 中级实操考试(id:3097)

实验11:20220319 1+X 中级实操考试(id:3097)

2024-07-06 05:52| 来源: 网络整理| 查看: 265

(学习笔记:代码块步骤检测都通过了,但是写得标不标准就是另外一回事了....)

实验11与实验7题目要求相差无几

【5 分】步骤 1:项目准备

复制粘贴即可

 【10 分】步骤 2:完成实体类 Student package org.lanqiao.bean; public class Student { //补充完成该类的含参构造方法 public Student(String name,String pwd){ } }

答案

//补充完成该类的含参构造方法 public Student(String name,String pwd){ this.name = name; this.pwd = pwd; }

实验11和实验7的区别在于步骤二,11只需要补全有参构造方法,实验7需要手写有参与无参

 【10 分】步骤 3:完成工具类 DateUtil的convertFromStringToDate方法 /** * 使用全局变量: sdf,将字符串转换为java.util.Date类型并返回 * @param stringDate * 注意,不能声明任何形式的异常抛出,否则测试用例无法通过 * @return */ public static Date convertFromStringToDate(String stringDate) { // 补全代码: Date date = null; return date; }

答案

public static Date convertFromStringToDate(String stringDate) { // 补全代码: Date date = null; try { date = sdf.parse(stringDate); } catch (Exception e) { //TODO: handle exception } return date; }

同时,实验11省略了实验7中的这个方法补全(与7相比11少了下面的步骤)

 【10 分】步骤 4:完成 SBDaoImpl 的 findByName 方法 /** * 依据书名查询书籍 * @param bname 书名 * @return 有的话返回书籍对象(唯一),没有的话返回null */ public Book findByName(String bname){ // 请补全sql语句 String sql = "###"; Book b = ou.getOne(sql, Book.class, bname); return b; }

答案

// 请补全sql语句 String sql = "select * from book where name = ?";

 【10 分】步骤 5:继续完善 SBDaoImpl 类 /** * 查询所有书籍中价钱最贵的书籍名称 * @return 返回书籍名称 */ public String queryExpensiveBook(){ // 请补全sql语句 String sql = "###"; Book b = ou.getOne(sql, Book.class); return b.getName(); }

答案

// 请补全sql语句 String sql = "select * from book order by price DESC limit 1";

 【10 分】步骤 6:继续完善 SBDaoImpl 类 /** * 依据学生的姓名来删除学生 * @param name 学生姓名 * @return 存在名字则删除,并返回true;不存在则不删除,并返回false */ public boolean deleteStudent(String name){ // 请补全sql语句 String sql = "###"; int a = ou.delete(sql, name); if(a>0){ return true; }else{ return false; } }

答案

// 请补全sql语句 String sql = "delete from student where name = ?";

 【15 分】步骤 7:继续完善 SBDaoImpl 类 /** * 根据学生姓名、旧密码、新密码来更新密码 * 如果学生姓名和旧密码不正确,则不更新 * 如果学生姓名和旧密码正确,则更新 * * @param name 姓名 * @param oldPwd 旧密码 * @param newPwd 新密码 */ public void changePwd(String name,String oldPwd,String newPwd){ // 1.先判断学生姓名和旧密码是否正确 // 请补全sql语句 String sql1 = "###"; Student s = ou.getOne(sql1, Student.class, name, oldPwd); // 2.姓名和旧密码正确,则更新;姓名和旧密码不正确,则不更新 if(s!=null){ // 请补全sql语句 String sql2 = "###"; ou.update(sql2, newPwd, name); } }

答案

// 1.先判断学生姓名和旧密码是否正确 // 请补全sql语句 String sql1 = "select * from student where name=? and pwd=?"; Student s = ou.getOne(sql1, Student.class, name, oldPwd); // 2.姓名和旧密码正确,则更新;姓名和旧密码不正确,则不更新 if(s!=null){ // 请补全sql语句 String sql2 = "update student set pwd=? where name=?"; ou.update(sql2, newPwd, name); }

 【15 分】步骤 8:继续完善 SBDaoImpl 类 /** * 借书 * @param sb 需要借阅的书籍信息 * @return 借书成功返回true,借书失败返回false */ public boolean borrow(SB sb) { // 1.首先依据要借的书名来获取书籍对象 Book b = findByName(sb.getBname()); // 2.有书则借书,并返回true;没有书则不借书,并返回false if(b!=null&&b.getNum()>0){ // 往 sb 表中插入相关信息:学生姓名,书籍名称,借书时间。自增id和还书时间不用插入。 // 请补全sql语句 String sql1 = "###"; ou.add(sql1,sb.getSname(),sb.getBname(),DateUtil.convertFromDateToString(sb.getBeginTime())); // 更新 book 表中对应书籍的数量减1 // 请补全sql语句 String sql2 = "###"; ou.update(sql2, sb.getBname()); return true; }else{ return false; } }

答案

// 2.有书则借书,并返回true;没有书则不借书,并返回false if(b!=null&&b.getNum()>0){ // 往 sb 表中插入相关信息:学生姓名,书籍名称,借书时间。自增id和还书时间不用插入。 // 请补全sql语句 String sql1 = "insert into sb (sname,bname,begintime) values(?,?,?)"; ou.add(sql1,sb.getSname(),sb.getBname(),DateUtil.convertFromDateToString(sb.getBeginTime())); // 更新 book 表中对应书籍的数量减1 // 请补全sql语句 String sql2 = "update book set num = num-1 where name = ?"; ou.update(sql2, sb.getBname()); return true; }else{ return false; }

 【15 分】步骤 9:继续完善 SBDaoImpl 类 /** * 还书 * @param sb 需要归还的书籍信息 * @return 还书成功返回true,还书失败返回false */ public boolean giveBack(SB sb){ //1.首先查询某人是否在某个时间借阅了某书,但是还没有归还 // 请补全sql语句 String sql = "###"; String btime = DateUtil.convertFromDateToString(sb.getBeginTime()); SB f = ou.getOne(sql, SB.class, sb.getSname(),sb.getBname(), btime); //2.借了则归还,并返回true;没有借则不用归还,并返回false if(f!=null){ // 根据借书人、借书名称、借书时间来更新 sb 表中的还书时间为当前时间 // 请补全sql语句 String sql1 = "###"; ou.update(sql1, DateUtil.convertFromDateToString(new Date()),sb.getSname(),sb.getBname(),DateUtil.convertFromDateToString(sb.getBeginTime())); // 更新 book 表中对应书籍的数量加1 // 请补全sql语句 String sql2 = "###"; ou.update(sql2, sb.getBname()); return true; }else{ return false; } }

答案

//1.首先查询某人是否在某个时间借阅了某书,但是还没有归还 // 请补全sql语句 String sql = "select * from sb where sname=? and bname=? and begintime=?"; String btime = DateUtil.convertFromDateToString(sb.getBeginTime()); SB f = ou.getOne(sql, SB.class, sb.getSname(),sb.getBname(), btime); //2.借了则归还,并返回true;没有借则不用归还,并返回false if(f!=null){ // 根据借书人、借书名称、借书时间来更新 sb 表中的还书时间为当前时间 // 请补全sql语句 String sql1 = "update sb set endtime=? where sname=? and bname=? and begintime=? "; ou.update(sql1, DateUtil.convertFromDateToString(new Date()),sb.getSname(),sb.getBname(),DateUtil.convertFromDateToString(sb.getBeginTime())); // 更新 book 表中对应书籍的数量加1 // 请补全sql语句 String sql2 = "update book set num = num+1 where name = ?"; ou.update(sql2, sb.getBname()); return true; }else{ return false; }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3