Re: citext data type does not work with JDBC PreparedStatement?
От | Craig Ringer |
---|---|
Тема | Re: citext data type does not work with JDBC PreparedStatement? |
Дата | |
Msg-id | 4E3D0E26.1070405@ringerc.id.au обсуждение исходный текст |
Ответ на | citext data type does not work with JDBC PreparedStatement? (Anton Moiseev <benderamp@gmail.com>) |
Ответы |
Re: citext data type does not work with JDBC PreparedStatement?
|
Список | pgsql-general |
On 6/08/2011 5:28 PM, Anton Moiseev wrote: > Hi, > > I wanted to have case-insensitive user names in my db and found that > citext postgresql data type > (http://www.postgresql.org/docs/8.4/interactive/citext.html) is exactly > what I need. > > So I have added to my db and it seemed to work fine when query db from > command line interface, but when I run it from java prepared statement, > things do not work as expected. > > For example, I have user name 'Leon' stored in the db and want to get > password for him. > > If I execute query in sql console: > SELECT password FROM users WHERE name = 'leon'; I hope that's not an example from your code... because storing passwords in clear text is almost always an *INCREDIBLY* bad idea. If at all possible, hash the password using a salted hash function, and compare the hashes when checking passwords. > final String query = "SELECT password FROM users WHERE name = ?"; > final PreparedStatement stmt = > dbConnection.prepareStatement(query); > stmt.setString(1, "leon"); > password won't be found. What's the query sent to the backend? Enable query and parameter logging in postgresql.conf, re-run your test, and see what the server receives. -- Craig Ringer
В списке pgsql-general по дате отправления: