Когда я запускаю этот код, используя maven, я не могу получить никаких данных. Он всегда показывает ноль.
Но если я запускаю его с помощью тестирования или как приложение java, я могу получить значения.
Я использую maven-surefire-plugin
для запуска этого кода.
classForDB
public class classForDB {
static Connection con =null;
static ResultSet rs = null;
static Statement stmt = null;
String returnVal = null;
public classForDB() throws Exception {
returnVal = valuesFromDatabase();
}
public static String valuesFromDatabase() throws Exception{
String asd = null;
try {
con = comm_orcal.connect();
stmt = con.createStatement();
//step4 execute query
rs = stmt.executeQuery("select * from m150_broker where M150_ID ='283'");
while(rs.next()) {
asd=rs.getString("M150_DESCRIPTION");
}
//step5 close the connection object con.close();
return asd;
}catch(Exception e) {
}
return asd;
}
}
dbtest class
public class dbtest {
@Test
public void showvalues() throws Exception {
classForDB db = new classForDB();
System.out.println("xzcxcxcxcxccxcx :"+db.returnVal);
}
static Connection con =null;
static ResultSet rs = null;
static Statement stmt = null;
String returnVal = null;
public static void main (String args []) {
String asd =null;
try {
con = comm_orcal.connect();
stmt = con.createStatement();
//step4 execute query
rs = stmt.executeQuery("select * from m150_broker where M150_ID ='283'");
while(rs.next()) {
asd=rs.getString("M150_DESCRIPTION");
System.out.println("Main method :"+asd);
}
//step5 close the connection object con.close();
}catch(Exception e) {
}
}
@Test
public static void test01() throws Exception {
String asd="HG es";
classForDB db = new classForDB();
Assert.assertEquals(db.returnVal, asd);
}
}
--------------- Maven Result --- -------------------
xzcxcxcxcxccxcx: null
---------- --Testng Result ------------------------
[RemoteTestNG] обнаружен TestNG версии 7.0.0
xzcxcxcxcxccxcx: HG es
--- Запуск в основном методе --------------
Основной метод: HG es