I want to make my class assessible everywhere.
I will create an instance of it in the very beginning of main method
and will call it's methods to get data from DB.
I have a problem.
Here is the part of my code:
import TableItem.Item;
import java.sql.*;
import java.util.Vector;
/**Class is used for loading driver to DriverManager*/
public class LoadDriver {
private static Connection connection_db=null;
private static Statement statement=null;
private static String drivername="";
private static String UrltoDB="";
private static String user="";
private static String password="";
private static String overrideBADDATE="zeroDateTimeBehavior=convertToNull&";
/**Constructor loads parameters from external config file*/
public LoadDriver(String drivername, String UrltoDB, String user, String password){
this.drivername=drivername;
this.UrltoDB=UrltoDB;
this.user=user;
this.password=password;
}//LoadDriver constructor
/**This method loads driver to DriverManager*/
public void loadDriverToDriverManager(){
try{
Class.forName(drivername).newInstance();
}
catch (Exception ex){
System.out.println("Loadind driver error: "+ex.getMessage());
}
}
/**This method gets new Connection to DB*/
public static void setNewConnectionToDB(){
String t= new String();
try {
t=this.UrltoDB+this.overrideBADDATE+"user="+this.user+"&password="+this.password;
this.connection_db = DriverManager.getConnection(t);
}
catch (SQLException ex) {
System.out.println("SQLExeption:"+ex.getMessage());
System.out.println("SQLState:"+ex.getSQLState());
System.out.println("VendorError:"+ex.getErrorCode());
}
}
/**this method returns alive connection*/
public static Connection getAliveConnection(){
if(this.connection_db!=null){
return this.connection_db;
}
else{
System.out.println("Connection died!!!!Need to establish new connection");
return null;
}
}
I do not understand.
I've declared
connection, and other variables as
static
but through compilation, I get an error message.
For example:
LoadDriver.java:40: non-static variable this cannot be referenced from a static context
t=this.UrltoDB+this.overrideBADDATE+"user="+this.user+"&password="+this.password;
]I get such error on each line where I use
private static Connection connection_db=null;
private static Statement statement=null;
private static String drivername="";
private static String UrltoDB="";
private static String user="";
private static String password="";
private static String overrideBADDATE="zeroDateTimeBehavior=convertToNull&";
in static method.
Where did I do a mistake (or mistakes)?
Message was edited by:
Holod