目录

课程信息录入:

LesInfoController:

ScoresController:

工具类ImportLesInfo:

(1)导入的基本方法:

(2)导入方法2

(3)表的主码的生成方法

工具类ImScores:

(1)表结构间的映射方法:选课信息——>scores表

(2)映射:选课信息——>les_info表

(3)映射:选课信息——>temporaryscores表

Mapper:

更新temporaryscores:

更新lesinfo:


关于导入部分,最主要要解决的问题是提供的原始数据的excel的结构和我们即将导入的数据库的结构上是不一样的,所以首先需要完成两种结构之间的映射;除此之外,因为有些数据库表的数据可能不止来自一个初始excel,所以后来需要一次update的操作导入剩余部分的属性。

课程信息录入:

LesInfoController:

完成调用方法将数据插入到lesinfo和temporaryscores的任务;

 /*** 通过excel导入数据-y** @param request* @param response* @return*/@RequestMapping(value = "/importExcely", method = RequestMethod.POST)public Result<?> importExcely(HttpServletRequest request, HttpServletResponse response) throws IOException {MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();System.out.println("---LesInfoController_importExcely---");File userfile = null;// 错误信息List<String> errorMessage = new ArrayList<>();int successLines = 0, errorLines = 0;// int ii = 0;for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
//           ii++;
//           System.out.println("--"+ii);
//           System.out.println("key= " + entity.getKey() + " and value= " + entity.getValue());MultipartFile file = entity.getValue();// 获取上传文件对象try {userfile= ImportLesInfoUtil.multipartFileToFile(file);} catch (Exception e) {e.printStackTrace();}List<LesInfo> listLesInfo = ImportLesInfoUtil.ImportExcel(userfile);List<TemporaryScores> listTemScr = ImTemScrUtil.ImportExcelToTemScr(userfile);System.out.println("------------------------------------------------------------------size = "+listLesInfo.size());try {// List<SysUser> listSysUsers = ExcelImportUtil.importExcel(file.getInputStream(), SysUser.class, params);for (int i = 0; i < listLesInfo.size(); i++) {LesInfo lesinfo = listLesInfo.get(i);TemporaryScores temporaryScores = listTemScr.get(i);System.out.println("第 "+i+" 个新课程信息");try {//用户表中加用户名、密码等lesInfoService.save(lesinfo);temporaryScoresService.save(temporaryScores);successLines++;System.out.println("les_info temScr成功 "+i);} catch (Exception e) {errorLines++;System.out.println("失败 "+i);String message = e.getMessage().toLowerCase();int lineNumber = i + 1;// 通过索引名判断出错信息if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)) {errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_WORK_NO)) {errorMessage.add("第 " + lineNumber + " 行:工号已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");}  else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER)) {errorMessage.add("第 " + lineNumber + " 行:违反表唯一性约束。");} else {errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入");log.error(e.getMessage(), e);}}}} catch (Exception e) {errorMessage.add("发生异常:" + e.getMessage());log.error(e.getMessage(), e);} finally {try {file.getInputStream().close();} catch (IOException e) {log.error(e.getMessage(), e);}}}return ImportExcelUtil.imporReturnRes(errorLines,successLines,errorMessage);}

ScoresController:

完成将选择信息插入到scores表,以及更新temporaryscores表和les_info表中未导入的属性;

    /*** 通过excel导入数据到scores,更新到temporaryscores和lesinfo** @param request* @param response* @return*/@RequestMapping(value = "/importExceltoScores", method = RequestMethod.POST)public Result<?> importExceltoScores(HttpServletRequest request, HttpServletResponse response) throws IOException {MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();System.out.println("---ScoresController_importExceltoScores---539");File userfile = null;// 错误信息List<String> errorMessage = new ArrayList<>();int successLines = 0, errorLines = 0;for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {MultipartFile file = entity.getValue();// 获取上传文件对象try {userfile= ImportLesInfoUtil.multipartFileToFile(file);} catch (Exception e) {e.printStackTrace();}List<Scores> listScores = ImScores.ImportExceltoScores(userfile);List<LesInfo> listLes  = ImScores.ImportExceltoLesInfoupdate(userfile);System.out.println("------------------------------------------------------------------size = "+listScores.size());try {// List<SysUser> listSysUsers = ExcelImportUtil.importExcel(file.getInputStream(), SysUser.class, params);for (int i = 0; i < listScores.size(); i++) {Scores scores = listScores.get(i);System.out.println("第 "+i+" 个新课程信息");try {//用户表中加用户名、密码等scoresService.save(scores);successLines++;System.out.println("成功 "+i);} catch (Exception e) {errorLines++;System.out.println("失败 "+i);String message = e.getMessage().toLowerCase();int lineNumber = i + 1;// 通过索引名判断出错信息if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)) {errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_WORK_NO)) {errorMessage.add("第 " + lineNumber + " 行:工号已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");}  else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER)) {errorMessage.add("第 " + lineNumber + " 行:违反表唯一性约束。");} else {errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入");log.error(e.getMessage(), e);}}}} catch (Exception e) {errorMessage.add("发生异常:" + e.getMessage());log.error(e.getMessage(), e);} finally {try {file.getInputStream().close();} catch (IOException e) {log.error(e.getMessage(), e);}}try {// List<SysUser> listSysUsers = ExcelImportUtil.importExcel(file.getInputStream(), SysUser.class, params);for (int i = 0; i < listLes.size(); i++) {LesInfo lesInfo = listLes.get(i);System.out.println("第 "+i+" 个更新入les_info的课程信息");int les_time = lesInfo.getLesTime();String les_sem = lesInfo.getLesSem();double les_credit = lesInfo.getLesCredit();String les_id = lesInfo.getLesId();String les_ord = lesInfo.getLesOrd();String test_jieci = lesInfo.getTestJieci();String test_zhouci = lesInfo.getTestZhouci();try {//参数!!!lesInfoService.updatelesinfo(les_time,les_sem,les_credit,test_jieci,test_zhouci,les_id,les_ord);temporaryScoresService.updateTemScr(les_time,les_sem,les_credit,les_id,les_ord);//lesInfoService.save(lesInfo);successLines++;System.out.println("lesinfo  temscr成功 update"+i);} catch (Exception e) {errorLines++;System.out.println("失败 update"+i);String message = e.getMessage().toLowerCase();int lineNumber = i + 1;// 通过索引名判断出错信息if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_USERNAME)) {errorMessage.add("第 " + lineNumber + " 行:用户名已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_WORK_NO)) {errorMessage.add("第 " + lineNumber + " 行:工号已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_PHONE)) {errorMessage.add("第 " + lineNumber + " 行:手机号已经存在,忽略导入。");} else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER_EMAIL)) {errorMessage.add("第 " + lineNumber + " 行:电子邮件已经存在,忽略导入。");}  else if (message.contains(CommonConstant.SQL_INDEX_UNIQ_SYS_USER)) {errorMessage.add("第 " + lineNumber + " 行:违反表唯一性约束。");} else {errorMessage.add("第 " + lineNumber + " 行:未知错误,忽略导入");log.error(e.getMessage(), e);}}}} catch (Exception e) {errorMessage.add("发生异常:" + e.getMessage());log.error(e.getMessage(), e);} finally {try {file.getInputStream().close();} catch (IOException e) {log.error(e.getMessage(), e);}}}return ImportExcelUtil.imporReturnRes(errorLines,successLines,errorMessage);}

工具类ImportLesInfo:

(1)导入的基本方法:

该方法主要完成了课程信息初始excel与数据库表les_info的映射;

在生成les_info表的主码时,首先要根据(3)中的方法获取到学年学期的信息,在加上课程编号和课序号,因为课序号的格式由1-3位,所以先将课序号都处理成3位的形式;

    /*导入excel,进les_info表中@Param  file*/public static List<LesInfo> ImportExcel(File file) {List<LesInfo> LesInfoList = new ArrayList<LesInfo>();if (!file.exists() || !file.isFile()) {//logger.info("excel转bean:文件不存在");return null;}FileInputStream fis = null;XSSFWorkbook wb = null;try {fis = new FileInputStream(file);wb = new XSSFWorkbook(fis);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//获取数据sheetXSSFSheet dataSheet = wb.getSheetAt(0);//获取excel文件中隐藏的驼峰字段名ArrayList<String> beanKey = new ArrayList<>();//获取属性名rowRow titleRow = dataSheet.getRow(2);for (int i = 0; i < titleRow.getLastCellNum(); i++) {String titlerow = titleRow.getCell(i).getStringCellValue();System.out.println("第 " + i + " 列 " + titlerow);beanKey.add(titleRow.getCell(i).getStringCellValue());}for (int i = 3; i < dataSheet.getPhysicalNumberOfRows(); i++) {//获取每一行的数据Row dataRow = dataSheet.getRow(i);//包含bean属性名和value的jsonJSONObject beanJson = new JSONObject();LesInfo lesinfo = new LesInfo();// System.out.println("id = "+userstu.getId());//读取到数据没有数据的时候,结束读取if (dataRow == null) {break;}for (int j = 0; j < beanKey.size(); j++) {//将属性名和数据放在json里String str = dataRow.getCell(j).getStringCellValue();switch (j) {case 2: {lesinfo.setLesId(str);//课程编号break;}case 3: {lesinfo.setLesName(str);//课程名称break;}case 4:{lesinfo.setLesOrd(str);//课序号break;}case 6:{lesinfo.setLesType(str);//课程类别break;}case 7:{lesinfo.setLesChar(str);//课程性质break;}case 8:{lesinfo.setLesShuxing(str);//课程属性Ibreak;}case 9:{lesinfo.setTeachType(str);//讲课方式break;}case 11:{lesinfo.setTeaId(str);//教工号break;}case 12:{lesinfo.setTeaName(str);//上课教师break;}case 14:{lesinfo.setCourseclass(str);//上课班级break;}case 15:{int num = Integer.parseInt(str);lesinfo.setCoursenum(num);//选课人数break;}case 18:{lesinfo.setXuewei(str);//是否学位课break;}case 19:{lesinfo.setZhouci(str);//上课周次break;}case 28:{lesinfo.setTestTime(str);//上课学时break;}case 31:{int weektime = Integer.parseInt(str);lesinfo.setWeekTime(weektime);//周学时break;}case 36:{lesinfo.setClassroom(str);//上课教室break;}case 37:{lesinfo.setTestType(str);//考核方式break;}}}String semester_year = ImportLesInfoUtil.CreateSemester_year();String cor_id = lesinfo.getLesId();//课程编号String sub_id = cor_id.substring(2);//去掉课程编号的 sdString cor_order = lesinfo.getLesOrd();//课程号String order = "";int length_order = cor_order.length();switch(length_order){case 1:{order = "00"+cor_order;break;}case 2:{order ="0"+cor_order;break;}case 3:{order = cor_order;break;}}String id = semester_year + sub_id + order;//les_info的主码lesinfo.setId(id);LesInfoList.add(lesinfo);}return LesInfoList;}

(2)导入方法2

该方法主要完成课程信息初始excel与数据库表temporaryscores的映射;

    /*导入excel,进les_info表中@Param  file*/public static List<TemporaryScores> ImportExcelToTemScr(File file) {List<TemporaryScores> temporaryScoresList = new ArrayList<TemporaryScores>();if (!file.exists() || !file.isFile()) {//logger.info("excel转bean:文件不存在");return null;}FileInputStream fis = null;XSSFWorkbook wb = null;try {fis = new FileInputStream(file);wb = new XSSFWorkbook(fis);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//获取数据sheetXSSFSheet dataSheet = wb.getSheetAt(0);//获取excel文件中隐藏的驼峰字段名ArrayList<String> beanKey = new ArrayList<>();//获取属性名rowRow titleRow = dataSheet.getRow(2);for (int i = 0; i < titleRow.getLastCellNum(); i++) {String titlerow = titleRow.getCell(i).getStringCellValue();System.out.println("第 " + i + " 列 " + titlerow);beanKey.add(titleRow.getCell(i).getStringCellValue());}for (int i = 3; i < dataSheet.getPhysicalNumberOfRows(); i++) {//获取每一行的数据Row dataRow = dataSheet.getRow(i);//包含bean属性名和value的jsonJSONObject beanJson = new JSONObject();TemporaryScores temporaryScores = new TemporaryScores();// System.out.println("id = "+userstu.getId());//读取到数据没有数据的时候,结束读取if (dataRow == null) {break;}for (int j = 0; j < beanKey.size(); j++) {//将属性名和数据放在json里String str = dataRow.getCell(j).getStringCellValue();switch (j) {case 2: {temporaryScores.setLesId(str);//课程编号break;}case 3: {temporaryScores.setLesName(str);//课程名称break;}case 4:{temporaryScores.setLesOrd(str);//课序号break;}case 6:{temporaryScores.setLesType(str);//课程类别break;}case 7:{temporaryScores.setLesChar(str);//课程性质break;}case 8:{temporaryScores.setLesShuxing(str);//课程属性Ibreak;}case 9:{temporaryScores.setTeachType(str);//讲课方式break;}case 11:{temporaryScores.setTeaId(str);//教工号break;}case 12:{temporaryScores.setTeaName(str);//上课教师break;}case 14:{temporaryScores.setCourseclass(str);//上课班级break;}case 15:{int num = Integer.parseInt(str);temporaryScores.setCoursenum(num);//选课人数break;}case 18:{temporaryScores.setXuewei(str);//是否学位课break;}case 19:{temporaryScores.setZhouci(str);//上课周次break;}case 28:{// temporaryScores.setTestTime(str);//上课学时break;}case 31:{int weektime = Integer.parseInt(str);temporaryScores.setWeekTime(weektime);//周学时break;}case 36:{temporaryScores.setClassroom(str);//上课教师break;}case 37:{temporaryScores.setTestType(str);//考核方式break;}}}String semester_year = ImportLesInfoUtil.CreateSemester_year();String cor_id = temporaryScores.getLesId();//课程编号String sub_id = cor_id.substring(2);//去掉课程编号的 sdString cor_order = temporaryScores.getLesOrd();//课程号String order = "";int length_order = cor_order.length();switch(length_order){case 1:{order = "00"+cor_order;break;}case 2:{order ="0"+cor_order;break;}case 3:{order = cor_order;break;}}String id = semester_year + sub_id + order;//les_info的主码temporaryScores.setId(id);temporaryScoresList.add(temporaryScores);}return temporaryScoresList;}

(3)表的主码的生成方法

主要在于根据系统的当前时间确定学年学期

    //根据当前系统时间生成les_info的idpublic static String CreateSemester_year(){String semester_year = "";//使用Date创建日期对象Date date=new Date();System.out.println("当前的日期是------>"+date);/*** 创建格式化时间日期类*构造入参String类型就是我们想要转换成的时间形式*/SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("格式化后的时间------->"+format.format(date));String str = format.format(date);String year = str.substring(0,4);String month = str.substring(5,7);String day = str.substring(8,10);int y = Integer.parseInt(year);int m = Integer.parseInt(month);int d = Integer.parseInt(day);int year1 = 0;int year2 = 0;String yearf = "";String yearl = "";String semester = "";System.out.println("year = "+year+", month = "+month+", day = "+day);if(m>1 && m<7){//处于第二学期year1 = y-1;year2 = y;semester = "2";}if(m>8 || (m>7 && d>=20)){//处于第一学期的情况一(8月20日以后)year1 = y;year2 = y+1;semester = "1";}if(m<2){//处于第一学期的情况二(2月1日之前)year1 = y-1;year2 = y;semester = "1";}if(m == 7 || (m == 8 && d<20)){//处于第三学期(7月——8月20日之前)year1 = y-1;year2 = y;semester = "3";}yearf = year1+"";yearl = year2+"";semester_year = yearf+yearl+semester;System.out.println("semester_year = "+semester_year);return semester_year;}

工具类ImScores:

该类定义了将选课信息excel导入scores表中,并且更新上面les_info表中未插入的属性;

(1)表结构间的映射方法:选课信息——>scores表

    /*导入excel,进scores表中@Param  file*/public static List<Scores> ImportExceltoScores(File file) {//String filepath = "C:/Users/dell/Desktop/2019软工信息/19软工选课结果.xlsx";//  File file = new File(filepath);List<Scores> ScoreList = new ArrayList<Scores>();List<LesInfo> LesList = new ArrayList<LesInfo>();if (!file.exists() || !file.isFile()) {//logger.info("excel转bean:文件不存在");return null;}FileInputStream fis = null;XSSFWorkbook wb = null;try {fis = new FileInputStream(file);wb = new XSSFWorkbook(fis);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//获取数据sheetXSSFSheet dataSheet = wb.getSheetAt(0);//获取excel文件中隐藏的驼峰字段名ArrayList<String> beanKey = new ArrayList<>();//获取属性名rowRow titleRow = dataSheet.getRow(2);for (int i = 0; i < titleRow.getLastCellNum(); i++) {String titlerow = titleRow.getCell(i).getStringCellValue();System.out.println("第 " + i + " 列 " + titlerow);beanKey.add(titleRow.getCell(i).getStringCellValue());}for (int i = 3; i < dataSheet.getPhysicalNumberOfRows(); i++) {//获取每一行的数据Row dataRow = dataSheet.getRow(i);//包含bean属性名和value的jsonJSONObject beanJson = new JSONObject();Scores score = new Scores();LesInfo lesinfo = new LesInfo();// System.out.println("id = "+userstu.getId());//读取到数据没有数据的时候,结束读取if (dataRow == null) {break;}for (int j = 0; j < beanKey.size(); j++) {//将属性名和数据放在json里String str = dataRow.getCell(j).getStringCellValue();switch (j) {case 2: {score.setStuId(str);//学号break;}case 4: {score.setStuName(str);//姓名break;}case 0:{score.setLesOrd(str);//课程编号break;}case 9:{score.setCsId(str);//课序号break;}case 14:{score.setTeaId(str);//教工号break;}case 1:{score.setCsSem(str);//学年学期break;}}}ScoreList.add(score);}return ScoreList;}

(2)映射:选课信息——>les_info表

    public static List<LesInfo> ImportExceltoLesInfoupdate(File file) {//String filepath = "C:/Users/dell/Desktop/2019软工信息/19软工选课结果.xlsx";//  File file = new File(filepath);List<LesInfo> LesList = new ArrayList<LesInfo>();if (!file.exists() || !file.isFile()) {//logger.info("excel转bean:文件不存在");return null;}FileInputStream fis = null;XSSFWorkbook wb = null;try {fis = new FileInputStream(file);wb = new XSSFWorkbook(fis);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//获取数据sheetXSSFSheet dataSheet = wb.getSheetAt(0);//获取excel文件中隐藏的驼峰字段名ArrayList<String> beanKey = new ArrayList<>();//获取属性名rowRow titleRow = dataSheet.getRow(2);for (int i = 0; i < titleRow.getLastCellNum(); i++) {String titlerow = titleRow.getCell(i).getStringCellValue();System.out.println("第 " + i + " 列 " + titlerow);beanKey.add(titleRow.getCell(i).getStringCellValue());}for (int i = 3; i < dataSheet.getPhysicalNumberOfRows(); i++) {//获取每一行的数据Row dataRow = dataSheet.getRow(i);//包含bean属性名和value的jsonJSONObject beanJson = new JSONObject();LesInfo lesinfo = new LesInfo();// System.out.println("id = "+userstu.getId());//读取到数据没有数据的时候,结束读取if (dataRow == null) {break;}for (int j = 0; j < beanKey.size(); j++) {//将属性名和数据放在json里String str = dataRow.getCell(j).getStringCellValue();switch (j) {case 0:{lesinfo.setLesId(str);//课程编号break;}case 9:{lesinfo.setLesOrd(str);//课序号break;}case 1:{lesinfo.setLesSem(str);//学年学期break;}case 15:{int lestime = Integer.parseInt(str);lesinfo.setLesTime(lestime);//总学时break;}case 16:{double credit = Double.parseDouble(str);lesinfo.setLesCredit(credit);//学分break;}}}LesList.add(lesinfo);}return LesList;}

(3)映射:选课信息——>temporaryscores表

    public static List<TemporaryScores> ImportExceltoTemScrupdate(File file) {//String filepath = "C:/Users/dell/Desktop/2019软工信息/19软工选课结果.xlsx";//  File file = new File(filepath);List<TemporaryScores> TemScrList = new ArrayList<TemporaryScores>();if (!file.exists() || !file.isFile()) {//logger.info("excel转bean:文件不存在");return null;}FileInputStream fis = null;XSSFWorkbook wb = null;try {fis = new FileInputStream(file);wb = new XSSFWorkbook(fis);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}//获取数据sheetXSSFSheet dataSheet = wb.getSheetAt(0);//获取excel文件中隐藏的驼峰字段名ArrayList<String> beanKey = new ArrayList<>();//获取属性名rowRow titleRow = dataSheet.getRow(2);for (int i = 0; i < titleRow.getLastCellNum(); i++) {String titlerow = titleRow.getCell(i).getStringCellValue();System.out.println("第 " + i + " 列 " + titlerow);beanKey.add(titleRow.getCell(i).getStringCellValue());}for (int i = 3; i < dataSheet.getPhysicalNumberOfRows(); i++) {//获取每一行的数据Row dataRow = dataSheet.getRow(i);//包含bean属性名和value的jsonJSONObject beanJson = new JSONObject();TemporaryScores temporaryScores = new TemporaryScores();// System.out.println("id = "+userstu.getId());//读取到数据没有数据的时候,结束读取if (dataRow == null) {break;}for (int j = 0; j < beanKey.size(); j++) {//将属性名和数据放在json里String str = dataRow.getCell(j).getStringCellValue();switch (j) {case 0:{temporaryScores.setLesId(str);//课程编号break;}case 9:{temporaryScores.setLesOrd(str);//课序号break;}case 1:{temporaryScores.setLesSem(str);//学年学期break;}case 15:{int lestime = Integer.parseInt(str);temporaryScores.setLesTime(lestime);//总学时break;}case 16:{double credit = Double.parseDouble(str);temporaryScores.setLesCredit(credit);//学分break;}}}TemScrList.add(temporaryScores);}return TemScrList;}

Mapper:

更新temporaryscores:

    <select id="updateTemScr" resultType="org.jeecg.modules.demo.ScoresInput.entity.TemporaryScores">update temporary_scores set les_time = #{les_time},les_sem = #{les_sem},les_credit = #{les_credit}where les_id = #{les_id} and les_ord=#{les_ord}</select>

更新lesinfo:

    <select id="updatelesinfo" resultType="org.jeecg.modules.demo.atupai.entity.LesInfo">update les_info set les_time = #{les_time},les_sem = #{les_sem},les_credit = #{les_credit},test_jieci = #{test_jieci},test_zhouci = #{test_zhouci}where les_id = #{les_id} and les_ord=#{les_ord}</select>

IEMS_11_课程信息相关的初始数据导入相关推荐

  1. 将包含经纬度点位信息的Excel表格数据导入到ArcMap中并输出成shapefile

    将包含经纬信息的Excel表格数据,导入到ArcMap中并输出成shapefile,再进行后面的操作.使用这种方法可以将每一个包含经纬信息的数据在ArcMap中点出来. 一.准备数据 新建Excel表 ...

  2. 中国大学MOOC课程信息爬取与数据存储

    版权声明:本文为博主原创文章,转载 请注明出处: https://blog.csdn.net/sc2079/article/details/82016583 10月18日更:MOOC课程信息D3.js ...

  3. Oracle数据导入导出imp/exp?批处理文件

    原文:http://ymy131931.iteye.com/blog/1114476 Oracle数据导入导出imp/exp?批处理文件 如何写批处理文件自动将数据导入oracle数据库 Oracle ...

  4. 中国大学MOOC课程信息之数据分析可视化二

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82318571 - 写在前面 本篇博客继续对中国大学MOOC ...

  5. MOOC课程信息D3.js动态可视化

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/83153693 - 写在前面 好久没更新博客了,主要还是最近 ...

  6. 中国大学MOOC课程信息之数据分析可视化一

    版权声明:本文为博主原创文章,转载 请注明出处:https://blog.csdn.net/sc2079/article/details/82263391 9月2日更:中国大学MOOC课程信息之数据分 ...

  7. MSSQL数据导入导出Excel的相关代码

    MSSQL数据导入导出Excel的相关代码 参考: https://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926 1 Export data to e ...

  8. c 连接mysql.mwb_mysql-将初始表数据导入到.mwb模型文件

    如何将初始表数据导入.mwb文件?我知道每个表都有一个插入选项卡,但是我想导入约200条记录,但我不想手工这样做. 解决方法: 现代版本的MySQL Workbench无法实现.本质上,没有办法对数据 ...

  9. 【数据库设计】学生学籍信息和学期学年课程成绩信息表以及插入数据的python脚本生成设计

    [数据库设计]学生学籍信息和学年学期课程成绩信息设计 参考登陆用户信息设计 学籍信息设计 课程成绩信息设计 其他表的补充 专业-学院对照表 班级信息表 课程表 插入数据脚本 错误提示 参考登陆用户信息 ...

  10. oracle导入初始数据死机,Sqoop导入Oracle数据至hive卡死在hive.HiveImport: Connecting to jdbc:hive2不执行...

    环境信息: HDP-3.1.4 已经下载好odjbc8.jar驱动程序放置在/usr/hdp/current/sqoop-client/lib/目录 Sqoop读取Oracle数据库数据导入Hive时 ...

最新文章

  1. 什么是Mybatis ?
  2. 全面永久退出!又一巨头被逼上绝路!
  3. 又回来了~工作告一段落了,终于有时间看书写点东西了
  4. ABB伺服驱动调试(三)
  5. matlab 图像方差,Matlab方差解析var--实例说明matlab求方差
  6. java代码实现网页源码爬取
  7. 云流化像素流技术解决方案之虚拟仿真系统
  8. 高中数学知识点:导数的概念及运算(复习+解析+答案)
  9. DataMatrix识别及定位项目笔记(2)——基于QT+libdmtx-0.7.5的DataMatrix解码及定位
  10. The OCD Brain: how animal research helps us understand a devastating condition
  11. java 判断图片合适,Java 判断图片色彩
  12. 威联通nas利用calibre-web搭建个人数字图书管理系统
  13. 仓储系统之入库、出库理解浅谈
  14. 怎么绑定虚拟服务器,虚拟服务器里怎样绑定ip地址
  15. outlook从服务器中恢复已删除项目,恢复邮箱中的已删除邮件:Exchange 2013 帮助 | Microsoft Docs...
  16. 微信公众号的用户运营?
  17. USB OTG的工作原理
  18. 东芝硬盘无法打开加密程序
  19. Volume数据存储详解
  20. 基本的安全和HTTP认证

热门文章

  1. ionic介绍以及ionic环境搭建
  2. module() takes at most 2 arguments (3 given)
  3. 【研一周小结】第十周个人学习总结
  4. Objective-C学习笔记(二)——OC基本语法概述
  5. 网吧游戏更新服务器--------各种网卡参数设置
  6. 数学狂想曲(十三)——勾股定理, Menelaus‘ Theorem
  7. CDR X7(CorelDRAW)注册下载详细安装教程,序列号功能齐全
  8. ESP8266刷入MicroPython固件教程
  9. c语言tc环境下while多大,求救,wintc环境下,写了程序,调试不出来,先谢谢了...
  10. 如何看待数字化转型对制造业的影响?