Solved

SQL query in a java bean

Posted on 2004-03-20
14
332 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
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
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

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

In this article, you will read about the trends across the human resources departments for the upcoming year. Some of them include improving employee experience, adopting new technologies, using HR software to its full extent, and integrating artifi…
In this article, I will show you HOW TO: Install VMware Tools for Windows on a VMware Windows virtual machine on a VMware vSphere Hypervisor 6.5 (ESXi 6.5) Host Server, using the VMware Host Client. The virtual machine has Windows Server 2016 instal…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…

757 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

20 Experts available now in Live!

Get 1:1 Help Now