Skip to Main Content

Java Database Connectivity (JDBC)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

static variables in my "Connect to mysql DB class"

holodMar 13 2007 — edited Mar 16 2007
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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 13 2007
Added on Mar 13 2007
14 comments
218 views