Solved

SQL query in a java bean

Posted on 2004-03-20
14
333 Views
Last Modified: 2012-05-04
My SQL Query is:
ResultSet RS             = SQLStmt.executeQuery("SELECT * FROM links;");

Question:
If I pass a string into the method (called SQLVar for example), how do I pass this into my SQL statement so i have something like this:

ResultSet RS             = SQLStmt.executeQuery("SELECT * FROM links where description like SQLvar;");

Thanks,

Matt
0
Comment
Question by:Ma7T
  • 8
  • 6
14 Comments
 
LVL 92

Expert Comment

by:objects
ID: 10641827
ResultSet RS           = SQLStmt.executeQuery("SELECT * FROM links where description like '"+SQLvar+"';");
0
 

Author Comment

by:Ma7T
ID: 10641831
Also - if I create a session bean, how do i discard the session - for example is a user logs out?
0
 
LVL 92

Accepted Solution

by:
objects earned 200 total points
ID: 10641832
or use a PreparedStatement:

PreparedStatement ps = conn.prepareStatement("SELECT * FROM links where description like ?");
ps.setString(1, SQLVar);
ResultSet RS = ps.executeQuery();
0
 
LVL 92

Expert Comment

by:objects
ID: 10641836
> if I create a session bean, how do i discard the session

session.invalidate();
0
 

Author Comment

by:Ma7T
ID: 10641994
Hello again Objects.
I think your code works - unfortunately when I ran it I started getting an exception, so i put all my code back how it was and I can't seem to get rid of the exception.  Can you cast your expert eye over it - I can't seem to find where the error lies:

try
            {
                  ObjConn = DriverManager.getConnection(url, "user", "password");
                    SQLStmt = ObjConn.createStatement();
                ResultSet RS             = SQLStmt.executeQuery("SELECT * FROM database;");
                ResultSetMetaData OutputMD      = RS.getMetaData();
                  
                iNumColumns             = OutputMD.getColumnCount();
                                                
                        while(RS.next())
                        {
                              Vector Vectortemp = new Vector();
                              
                              for(int i=1;i<=iNumColumns;i++)
                              {
                                    Vectortemp.addElement(RS.getObject(i));
                              }
                              
                              VectorA.addElement(Vectortemp);
                              }
                              
                        SQLStmt.close();
                        RS.close();
                        ObjConn.close();
                   }

Any ideas.

(i've upped the points because you've been so helpful)
0
 
LVL 92

Expert Comment

by:objects
ID: 10642010
what errors u getting?
0
 

Author Comment

by:Ma7T
ID: 10642023
I'm not sure - I've got a crude way of checking:

catch(SQLException ConnectEx)
            {
                  iNumColumns = 32;
                     System.err.println(ConnectEx.getMessage());
                   }

I return iNumColumns to the JSP page and output it to the screen.  

All i know is iNumColumns = 32

0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 92

Expert Comment

by:objects
ID: 10642092
>   System.err.println(ConnectEx.getMessage());

what does that line print to log?

> SQLStmt.close();
> RS.close();
> ObjConn.close();

order should be:

RS.close();
SQLStmt.close();
ObjConn.close();

0
 

Author Comment

by:Ma7T
ID: 10642148
If i browse to tomcat/logs where i assume the logs are there are about 5 different log files whih contain loads of data.  So i've moved them into a file called temp so that when i reload the page it creates a new log file.  But this doesn't happen.

How do i find the particular log of this event?
0
 
LVL 92

Expert Comment

by:objects
ID: 10642173
what version of tomcat?

did u change the ordering of the close?
0
 

Author Comment

by:Ma7T
ID: 10642184
Yep, changed the order.
Version of tomcat is 5.0.16

The only thing that i have changed since it was working was the page that the method is called from but i can't see his having any effect on the method throwing an exception.
0
 
LVL 92

Expert Comment

by:objects
ID: 10642209
you could try getting rid of that ; at the end of the sql statement.

not sure what 5.0 does with its logs and it probably depends on your setup anyway.
if it helps the log for my local tobcat webapp in 4.1 is localhost_log.yyyy-mm-dd.txt
0
 

Author Comment

by:Ma7T
ID: 10642246
Fixed it!!!!
dont worry i was being an idiot.

It was further above in the code, i had :
ClassforName("var")
instead of ClassforName(var)

Thanks a lot for your help though, I found the log file and it was that that pointed me to my stupid mistake.

0
 
LVL 92

Expert Comment

by:objects
ID: 10642256
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
issue with pdf generation 2 85
squirrelPlay java challenge 40 157
JSONSerializer.toJSON in JSP generating error 8 65
how to add new optional parameter to JSP 1 29
Microsoft Office Picture Manager was included in Office 2003, 2007, and 2010, but not in Office 2013. Users had hopes that it would be in Office 2016/Office 365, but it is not. Fortunately, the same zero-cost technique that works to install it with …
The new Gmail Phishing Scam going around is surprising even the savviest of users with its sophisticated techniques. This attack comes as a nightmare trifecta for email filtering services; sent from a familiar contact, using authentic tone and verbi…
Along with being a a promotional video for my three-day Annielytics Dashboard Seminor, this Micro Tutorial is an intro to Google Analytics API data.
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now