Обсуждение: a question, please help me.
Dear Sir or Madam, I am in trouble when I try to connect postgresql 8.03 to JBuilder9 with JDBC3 8.1. When I use no-parameter sql, my project runs well. For example, Connection db = DriverManager.getConnection(url,user,pwd); Statement st = db.createStatement(); ResultSet rs = st.executeQuery("select * from operator"); while(rs.next()) { System.out.println("ID: "+rs.getString(1)); } rs.close(); st.close(); The results are: ID: 100 ID: 101 ... But when I try to use parameter sql, my project has sqlexceptions, for example: Connection db = DriverManager.getConnection(url,user,pwd); PreparedStatement ps = db.prepareStatement("select * from operator where ID=?"); ps.setString(1,100); ResultSet rs = ps.executeQuery(); if(rs!=null) { while(rs.next()) { System.out.println("ID: "+rs.getString(1)); } rs.close(); } ps.close(); The sqlexception is:....column 'id' is not exist..... What's the reason please? All of the tables are created in Windows XP. Thank you for your any suggestion. Sincerely, Thomas Wu _________________________________________________________________ 享用世界上最大的电子邮件系统― MSN Hotmail。 http://www.hotmail.com
What does the table definition look like ? in the first example you don't get the result by name so it could be any column. Dave On 20-Jul-05, at 3:00 AM, wu xiao wrote: > Dear Sir or Madam, > I am in trouble when I try to connect postgresql 8.03 to > JBuilder9 with JDBC3 8.1. When I use no-parameter sql, my project > runs well. For example, > > Connection db = DriverManager.getConnection(url,user,pwd); > Statement st = db.createStatement(); > ResultSet rs = st.executeQuery("select * from operator"); > while(rs.next()) { > System.out.println("ID: "+rs.getString(1)); > } > rs.close(); > st.close(); > > The results are: > ID: 100 > ID: 101 > ... > > But when I try to use parameter sql, my project has sqlexceptions, > for example: > > Connection db = DriverManager.getConnection(url,user,pwd); > PreparedStatement ps = db.prepareStatement("select * from operator > where ID=?"); > ps.setString(1,100); > ResultSet rs = ps.executeQuery(); > if(rs!=null) { > while(rs.next()) { > System.out.println("ID: "+rs.getString(1)); } > rs.close(); > } > ps.close(); > > The sqlexception is:....column 'id' is not exist..... What's the > reason please? All of the tables are created in Windows XP. > > Thank you for your any suggestion. > > Sincerely, > Thomas Wu > > _________________________________________________________________ > 享用世界上最大的电子邮件系统— MSN Hotmail。 http:// > www.hotmail.com > > ---------------------------(end of > broadcast)--------------------------- > TIP 6: explain analyze is your friend > > Dave Cramer davec@postgresintl.com www.postgresintl.com ICQ #14675561 jabber davecramer@jabber.org ph (519 939 0336 )
wu xiao wrote: > PreparedStatement ps = db.prepareStatement("select * from operator where > ID=?"); > The sqlexception is:....column 'id' is not exist..... What's the reason > please? All of the tables are created in Windows XP. If you've created the table with a capitalized column name, you will need to quote it in your SQL: "select * from operator where \"ID\"=?" Unquoted identifiers (column names, table names, etc) are forced to lowercase by the server. -O