java.lang.Exception: Method basicSelect() should be void
at org.junit.runners.model.FrameworkMethod.validatePublicVoid(FrameworkMethod.java:99)
at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java:74)
at org.junit.runners.ParentRunner.validatePublicVoidNoArgMethods(ParentRunner.java:155)
at org.junit.runners.BlockJUnit4ClassRunner.validateTestMethods(BlockJUnit4ClassRunner.java:208)
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:188)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:49)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
@test 注解的方法需要返回值为void
@Test
public CustomersEntity basicSelect() {
CustomersEntity customersEntity=null;
Connection connection = null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try {
// 1 获取连接
connection = getConnection();
// 2 编写sql语句
String sql = "SELECT id,'name','email',birth FROM customers WHERE id=?";
// 3 预编译sql语句,返回preparedStatement对象
preparedStatement= connection.prepareStatement(sql);
// 4 占位符填充
preparedStatement.setObject(1, 10);
// 5 执行preparedStatement 返回结果集
resultSet = preparedStatement.executeQuery();
// 6 从结果集中取出结果
// next():判断结果集的下一条是否有数据,如果有数据返回true,并指针下移;如果返回false,指针不会下移。
if (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String email = resultSet.getString("email");
Date birth = resultSet.getDate("birth");
customersEntity = new CustomersEntity(id, name, email, birth);
}
return customersEntity;
} catch (Exception e) {
e.printStackTrace();
} finally {
closeResource(connection, preparedStatement,resultSet);
}
return null;
}
修正:返回值改为空,或者去掉该注解即可
public CustomersEntity basicSelect() {
CustomersEntity customersEntity=null;
Connection connection = null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
try {
// 1 获取连接
connection = getConnection();
// 2 编写sql语句
String sql = "SELECT id,'name','email',birth FROM customers WHERE id=?";
// 3 预编译sql语句,返回preparedStatement对象
preparedStatement= connection.prepareStatement(sql);
// 4 占位符填充
preparedStatement.setObject(1, 10);
// 5 执行preparedStatement 返回结果集
resultSet = preparedStatement.executeQuery();
// 6 从结果集中取出结果
// next():判断结果集的下一条是否有数据,如果有数据返回true,并指针下移;如果返回false,指针不会下移。
if (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String email = resultSet.getString("email");
Date birth = resultSet.getDate("birth");
customersEntity = new CustomersEntity(id, name, email, birth);
}
return customersEntity;
} catch (Exception e) {
e.printStackTrace();
} finally {
closeResource(connection, preparedStatement,resultSet);
}
return null;
}