Re: org.postgresql.util.PSQLException: Protocol error. Session setup failed
От | Lew |
---|---|
Тема | Re: org.postgresql.util.PSQLException: Protocol error. Session setup failed |
Дата | |
Msg-id | hn9hv5$l9l$1@news.albasani.net обсуждение исходный текст |
Ответ на | Re: org.postgresql.util.PSQLException: Protocol error. Session setup failed (Major Services <services.major@gmail.com>) |
Список | pgsql-jdbc |
Major Services wrote: > Output is : Output of what? > //============================================================ // Main > public access point method for instantiating the // PostgreSQL_JDBC > application. Arguments: database, username, // & password. // > ============================================================== public > static void main(String[] args) throws SQLException, > InstantiationException, IllegalAccessException, ClassNotFoundException, > InterruptedException { String host, database, username, password; > Connection dbConnection; // Collect connection properties. and setup > connection. //host = "cindy"; host = "localhost"; if (args.length != 0) > { database = args[0]; username = (args.length > 1) ? args[1] : null; > password = (args.length > 2) ? args[2] : null; } else { database = > "postgres"; username = "postgres"; password = "major"; } dbConnection = > null; Class.forName("org.postgresql.Driver").newInstance(); dbConnection > = DriverManager.getConnection("jdbc:postgresql://" + host + "/" + > database, username, password); System.out.println("Connection Created"); > new PostgreSQL_JDBC(dbConnection); // Close. dbConnection.close(); > System.out.println("Connection Closed"); } Wow, that is some unreadable source code. I see nothing here that sheds light on your question, though. What caught my eye in what dmp wrote: is > public static void main(String[] args) throws SQLException, > InstantiationException, > IllegalAccessException, ClassNotFoundException, > InterruptedException If you don't handle the exceptions, perhaps even with logging, it's harder to diagnose what went wrong. I am also curious why the declaration of 'InterruptedException' is in the throws list. > { > String host, database, username, password; > Connection dbConnection; Declared but not instantiated - correct enough except that ... > dbConnection = null; assigned here, then > Class.forName("org.postgresql.Driver").newInstance(); > dbConnection = DriverManager.getConnection("jdbc:postgresql://" > + host + "/" + database, username, > password); the value is replaced here. It's a best practice in Java to declare variables within the scope of use, and close to the point of use. It doesn't make much sense to assign a value to the variable that is never used, just thrown away. Also that argument applies to the invocation of 'newInstance()'. The driver registers itself with the driver manager on class initialization; the creation of an instance does nothing but waste time. User code never directly uses driver instances. -- Lew
В списке pgsql-jdbc по дате отправления: