改前:
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);//试卷上设置的一套试题是problem
return 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);//试卷上设置的一套试题是problem
return 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.jar
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
at 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