实验13:20220625 1+X 中级实操考试(id:3411)
?筆記學(xué)習(xí),記錄步驟7與步驟8中出現(xiàn)的錯誤
目錄
【5 分】步驟 1:項(xiàng)目準(zhǔn)備
?【10 分】步驟 2:完成實(shí)體類?Info
?【10 分】步驟 3:完成?Info?的?toString?方法
?【10 分】步驟 4:完成?Score
?【10 分】步驟 5:完成?SSDaoImpl?的?queryInfo?方法
?【10 分】步驟 6:繼續(xù)完善?SSDaoImpl?類
?【15 分】步驟 7:繼續(xù)完善?SBDaoImpl?類
?【15 分】步驟 8:繼續(xù)完善?SSDaoImpl?類
?【15 分】步驟 9:繼續(xù)完善?SSDaoImpl?類
【5 分】步驟 1:項(xiàng)目準(zhǔn)備
復(fù)制粘貼即可
?【10 分】步驟 2:完成實(shí)體類?Info
//補(bǔ)充完成該類的含參構(gòu)造方法public Info(String id, String name, int age, String sex, String provice) {}需求:補(bǔ)充有參構(gòu)造函數(shù)
//補(bǔ)充完成該類的含參構(gòu)造方法public Info(String id, String name, int age, String sex, String provice) {this.id = id;this.name = name;this.age = age;this.sex = sex;this.provice = provice;}?【10 分】步驟 3:完成?Info?的?toString?方法
// 請修改該方法,以保證打印對象時輸出格式如下:// {id:"001";name:"zs";age:20;sex:"男";provice:"四川"}@Overridepublic String toString() {return "";}答案
public String toString() {return "{id:\""+id+"\";name:\""+name+"\";age:"+age+";sex:\""+sex+"\";provice:\""+provice+"\"}";}?【10 分】步驟 4:完成?Score
// 缺失代碼:請補(bǔ)全以下方法,要求英語成績的范圍在:0<=num<150 之間// 當(dāng)參數(shù)在規(guī)定范圍外時,不做任何動作public void setEnglish(int english) {}答案
public void setEnglish(int english) {if(english >= 0 && english < 150){this.english = english;}}?【10 分】步驟 5:完成?SSDaoImpl?的?queryInfo?方法
/*** 依據(jù)學(xué)生考號查詢學(xué)生信息* @param id 學(xué)生考號* @return 有的話返回學(xué)生對象,沒有的話返回null*/public Info queryInfo(String id){// 請補(bǔ)全sql語句String sql = "###";Info i = infoUtil.getOne(sql, Info.class, id);return i;}答案
public Info queryInfo(String id){// 請補(bǔ)全sql語句String sql = "select * from info where id=?";Info i = infoUtil.getOne(sql, Info.class, id);return i;}?【10 分】步驟 6:繼續(xù)完善?SSDaoImpl?類
/*** 依據(jù)學(xué)生考號查詢學(xué)生成績,返回4門成績之和* @param id 學(xué)生考號* @return 返回4門成績之和*/public int querySum(String id){// 請補(bǔ)全sql語句String sql = "###";Score s = infoUtil.getOne(sql, Score.class, id);int sum = s.getChinese() + s.getMaths() + s.getEnglish() + s.getComposite();return sum;}答案
public int querySum(String id){// 請補(bǔ)全sql語句String sql = "select * from score where id = ?";Score s = scoreUtil.getOne(sql, Score.class, id);int sum = s.getChinese() + s.getMaths() + s.getEnglish() + s.getComposite();return sum;}?【15 分】步驟 7:繼續(xù)完善?SBDaoImpl?類
/*** 依據(jù)學(xué)生姓名查詢學(xué)生成績,返回4門成績之和* @param name 學(xué)生姓名* @return 返回4門成績之和*/public int querySumByName(String name){// 請補(bǔ)全sql語句String sql = "###";Score s = scoreUtil.getOne(sql, Score.class, name);int sum = s.getChinese() + s.getMaths() + s.getEnglish() + s.getComposite();return sum;}這里是通過info表的name獲取到id,然后通過id去查找到四門的成績
答案
String sql_in = "select * from info where name = ?";Info in = infoUtil.getOne(sql_in, Info.class, name);String sql_sc = "select * from score where id="+in.getId();Score sc = scoreUtil.getOne(sql_sc, Score.class);int sum = sc.getChinese() + sc.getMaths() + sc.getEnglish() + sc.getComposite();return sum;這個代碼在實(shí)驗(yàn)13是可以通過的,但是不夠完整,如果說找不到人或者找到人沒成績,那就要判斷是不是null
// 請補(bǔ)全sql語句String sql_in = "select * from info where name = ?";Info in = infoUtil.getOne(sql_in, Info.class, name);if (in != null){String sql_sc = "select * from score where id="+in.getId();Score sc = scoreUtil.getOne(sql_sc, Score.class);if(sc != null){int sum = sc.getChinese() + sc.getMaths() + sc.getEnglish() + sc.getComposite();return sum;}} return 0;(這里是用了分布查詢,當(dāng)然還可以通過子查詢查詢到數(shù)據(jù))
============子查詢================
public int querySumByName(String name){// 請補(bǔ)全sql語句String sql = "select * from score where id = (select id from info where name = ?)";Score s = scoreUtil.getOne(sql, Score.class, name);int sum = s.getChinese() + s.getMaths() + s.getEnglish() + s.getComposite();return sum;}?【15 分】步驟 8:繼續(xù)完善?SSDaoImpl?類
/*** 查詢4門成績之和的最大值* @return 返回最大值*/public int queryMaxSum(){// 請補(bǔ)全sql語句String sql = "###";Score s = scoreUtil.getOne(sql, Score.class);int sum = s.getChinese() + s.getMaths() + s.getEnglish() + s.getComposite();return sum;}這里查詢的四門成績最大值,是查詢幾個學(xué)生里面的總分最高的
答案
// 請補(bǔ)全sql語句String sql = "select * from score order by chinese DESC,maths DESC,English DESC,Composite DESC limit 1";Score s = scoreUtil.getOne(sql, Score.class);int sum = s.getChinese() + s.getMaths() + s.getEnglish() + s.getComposite();return sum;這個是可以通過的,但是存在bug(因?yàn)檫@個題目給出的成績數(shù)據(jù)里面,這樣排序剛好獲取到了總分?jǐn)?shù)最高的,如果不是,就出現(xiàn)了錯誤),所以對總成績做一個排序
總分排序答案
// // 請補(bǔ)全sql語句String sql = "select * from score order by chinese+maths+english+composite desc limit 1";Score s = scoreUtil.getOne(sql, Score.class);int sum = s.getChinese() + s.getMaths() + s.getEnglish() + s.getComposite();return sum;?【15 分】步驟 9:繼續(xù)完善?SSDaoImpl?類
/*** 依據(jù)姓名更新年齡* @return name 姓名* @return age 年齡*/public void updateAge(String name,int age){// 請補(bǔ)全sql語句String sql = "###";int i = infoUtil.update(sql,age,name);}答案
public void updateAge(String name,int age){// 請補(bǔ)全sql語句String sql = "update info set age = ? where name = ?";int i = infoUtil.update(sql,age,name);}總結(jié)
以上是生活随笔為你收集整理的实验13:20220625 1+X 中级实操考试(id:3411)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 伤害世界服务器连接失败_伤害世界服务器怎
- 下一篇: 2021-07-18 三种视图的dico