
改前:
public TestPaper getTestPaper(String excelFileName,int amount) {boolean b =setExcel(excelFileName); //设置用户存放试题的电子表格if(b) {try {randomGiveProblem(amount);//随机给出amount道试题,见类后面的randomGiveProblem方法}catch(ArrayIndexOutOfBoundsException e){System.out.println("试题必须有类型,请检查题库");System.exit(0);}testPaper.setProblem(problem);//试卷上设置的一套试题是problemreturn testPaper;//返回试卷}else {JOptionPane.showMessageDialog(null,"没有预备题库","消息对话框",JOptionPane.WARNING_MESSAGE);return null;}}
改后:
public TestPaper getTestPaper(String excelFileName,int amount){wb = SetExcel.setExcel(excelFileName,testPaper,fileExcel,problem,in,wb,sheet);//设置用户存放试题的电子表格if(wb!=null){try {randomGiveProblem(amount);//随机给出amount道试题,见类后面的randomGiveProblem方法}catch(ArrayIndexOutOfBoundsException e){//用非法索引访问数组时抛出的异常。System.out.println("试题必须有类型,请检查题库");System.exit(0);//exit(int status)终止当前正在运行的 Java 虚拟机。}testPaper.setProblem(problem);//试卷上设置的一套试题是problemreturn testPaper;//返回试卷}else {JOptionPane.showMessageDialog(null,"没有预备题库","消息对话框",JOptionPane.WARNING_MESSAGE);return null;}}
重复代码单独
package data;import jxl.Sheet;import jxl.Workbook;import javax.swing.*;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;/*设置用户存放试题的电子表格,并且读取*/public class SetExcel {public static Workbook setExcel(String excelFileName,TestPaper testPaper, File fileExcel, Problem[] problem, InputStream in, Workbook wb, Sheet sheet){//判断题库 Excel是否存在try {//File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。fileExcel =new File(excelFileName);//FileInputStream:从文件系统中的某个文件中获得输入字节in =new FileInputStream(fileExcel);//getAbsolutePath()返回此抽象路径名的绝对路径名字符串。testPaper.setProblemSource(fileExcel.getAbsolutePath());//试卷设置题库来源}catch(IOException exp){JOptionPane.showMessageDialog(null,"没有预备题库Excel","消息对话框",JOptionPane.WARNING_MESSAGE);}try {//getWorkbook:接收一个excel文件并读入内容wb=Workbook.getWorkbook(in);//close()关闭此输入流并释放与该流关联的所有系统资源。in.close();}catch(Exception exp){System.out.println(exp);}return wb;}}




删除_GiveTestPaper_mysql接口_,_GiveTestPaper接口_增加两个抽象方法
1.public TestPaper getTestPaper(int amount)
2.public int getShiTi();_//返回试题来源_

Microsoft Windows [版本 10.0.19042.1348](c) Microsoft Corporation。保留所有权利。E:\java_study\软件发布_04_mysql>E:\java_study\软件发布_04_mysql>java -jar kechensheji.jarjava.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driverat java.net.URLClassLoader.findClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)at java.lang.ClassLoader.loadClass(Unknown Source)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Unknown Source)at mysql.SetExcel_mysql.connectDB(SetExcel_mysql.java:15)at mysql.SetExcel_mysql.<init>(SetExcel_mysql.java:25)at mysql.OrderTestPaper_mysql.getTestPaper(OrderTestPaper_mysql.java:20)at gui.AppWindow_test.main(AppWindow_test.java:22)E:\java_study\软件发布_04_mysql>java -jar kechensheji.jar
之前导入的jar包为 **mysql-connector-java-5.1.37-bin** 不适配 **MySQL Server 8.0**
IDEA打包jar包含第三方jar包(自测正确步骤) https://blog.csdn.net/xiaokui9/article/details/105244775

