Hi Nelson
The <%= %> tags are for substitution into HTML as you identified in your
example
Hi, my name is <%= name %>.
i.e. the PrintWriter outputs *to the browser* the text Hi etc + whatever
'name' evaluates to.
You can also use the <% %> tags to create java blocks as you also have
identified,
and they don't get output to the browser.
<% Class.forName("oracle.jdbc.driver.OracleDriver").n ewInstance(); %>
Ok, with that said, lets look at what are you doing here ..
<% .... snip
String sql = "SELECT * FROM db.db WHERE db.column = <%= recordkey %>";
You have got a <%= nested inside a <% - can't do that.
I'm afraid I don't understand what you are trying to do, so can't be of much
more help. There doesn't seem to be much point in your recordKey variable -
you could just do
String sql = "SELECT * FROM db.db WHERE db.column = 99"
just as well.
If you want to keep your variable, then do this:
String sql = "SELECT * FROM db.db WHERE db.column = " + recordKey ;
If you were trying to do 'bind variables' of something with your <%=
recordKey %>
use a PreparedStatement
<%
try {
Class.forName("oracle.jdbc.driver.OracleDriver").n ewInstance();
Connection con =
DriverManager.getConnection("jdbc:oracle:thin:@dsn :portnumber:dbinstance","u
serid","passwd");
String select = "SELECT * FROM db.db WHERE db.column = ?"
PreparedStatement ps = con.prepareStatement(select);
ResultSet rs = null;
for(int recordKey =0;recordKey <10;recordKey ++) {
ps.setString(1,""+recordKey );
rs = ps.executeQuery();
if (rs.next()) {
%>
We got back <%=rs.getString(1) %>
}
}
} catch (SQLException sqle) {sqle.printStackTrace();}
%>
Caveats:
The above is unpleasant because you would be better constructing an String
containing "where db.column in ( 1,3,etc)"
rather than looping. Secondly, you are doing data access in a JSP which
isn't nice !
Cheers,
Dave Milne, Scotland
"Nelson Broat" <ne**********@mail.cuny.edu> wrote in message
news:32*************************@posting.google.co m...
: In jsp land you can have the following:
:
: <%
: String name = "Nelson";
: %>
:
: Hi, my name is <%= name %>.
:
: Such that, in your browser you see:
:
: Hi, my name is Nelson.
:
: I am trying to do similiar with the executeQuery() method and it is
: not working. Can anyone tell me what is wrong with the syntax I'm
: using?
: The jsp won't compile. It seems to not want to allow me to pass a
: variable called recordkey, which in this example has a value of 999.
: But in a loop structure which I'm looking to create, the value would
: change. Thanks for any and all help.
:
: <%@ page import="java.util.*,
: java.text.*,
: java.io.*,
: java.sql.*"
: contentType="text/html; charset=UTF-8"
: %>
: <%
: Class.forName("oracle.jdbc.driver.OracleDriver").n ewInstance();
: con =
DriverManager.getConnection("jdbc:oracle:thin:@dsn :portnumber:dbinstance","u
serid","passwd");
: stmt = con.createStatement();
: int recordkey = 999;
: String sql = "SELECT * FROM db.db WHERE db.column = <%= recordkey %>";
: rs = stmt.executeQuery(sql);
: %>
:
: Nelson Broat
:
ne**********@mail.cuny.edu