я получил одноэлементный класс, как показано ниже, для доступа Подключения к базе данных какСтатический метод getDBConnection() от типа DBConnection должен быть доступен статический
public class DBConnection {
private static volatile DBConnection instance;
private static DataSource dataSource;
private DBConnection(){
}
public static synchronized DBConnection getInstance() {
if (instance == null) {
instance = new DBConnection();
}
return instance;
}
static {
try {
dataSource = (DataSource) new InitialContext()
.lookup("java:comp/env/jdbc/MySQLDataSource");
} catch (NamingException e) {
e.printStackTrace();
try {
throw new Exception("'jndifordbconc' not found in JNDI", e);
} catch (Exception e1) {
logger.error("Error description", e);
}
}
}
public static Connection getDBConnection() {
try {
return dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
logger.error("Error description", e);
return null;
}
}
}
И когда я пытаюсь получить доступ к DBConnection таким образом
SeperateClass
Здесь я получаю желтое предупреждение
public String fetchGlobalIndicesData(@QueryParam("region_name") String region_name)
{
Connection dbConnection = null;
String selectsql = "";
try
{
dbConnection = DBConnection.getInstance().getDBConnection();
selectpstmt = dbConnection.prepareStatement(selectsql);
selectpstmt.setString(1, region_name);
selectRset = selectpstmt.executeQuery();
}
catch (Exception e)
{
logger.error("Error description",e);
}
}
Eclipse IDE дает мне желтый предупреждение о том,
The static method getDBConnection() from the type DBConnection should be accessed in a static way
Не могли бы вы сказать мне, Что такое правильный способ сделать это ??
Я изменил мой код, как
public static Connection getDBConnection() {
try {
return getInstance().dataSource.getConnection();
} catch (SQLException e) {
e.printStackTrace();
logger.error("Error description", e);
return null;
}
}
Вы попробовали '' DBConnection.getDBConnection() '' –