jsp - 同一个 JSP 页面上的多个 Java Scriptlet
问题描述
我想用 WHERE 子句选择 SQL 数据,但我不知道如何使用它。
我预期的 SQL 查询:SELECT * FROM OLSUSER WHERE user=login_user;
这是我的带有 Java Sciptlet 标记的 HttpSession
<%
HttpSession sessions = request.getSession(false);
String login_user = (String) sessions.getAttribute("l_user");
String login_role = (String) sessions.getAttribute("l_role");
%>
这是带有 Sciptlet 标记的 SQL 选择
<%
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = (Connection) DriverManager.getConnection(
"jdbc:derby://localhost:1527/sample", "app", "app");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from OLSOrder");
%><table border=1 align=center style="text-align: center">
<tbody>
<tr>
//table data
解决方案
您可以使用PreparedStatement在查询中传递值select
。例如:-
<%
HttpSession sessions = request.getSession(false);
String login_user = (String) sessions.getAttribute("l_user");
String login_role = (String) sessions.getAttribute("l_role");
try {
Class.forName("org.apache.derby.jdbc.ClientDriver");
Connection con = (Connection) DriverManager.getConnection(
"jdbc:derby://localhost:1527/sample", "app", "app");
//passing your query in preparestatement using (?)
PreparedStatement ps = con.prepareStatement("select * from OLSUSER where user=?");
//putting value for placeholder (?)
ps.setString(1,login_user);
ResultSet resultset= ps.executeQuery();
%>
<!--printing table-->
<table align="center" cellpadding="2" cellspacing="2" border="1">
<tr bgcolor="#d9ac26">
<th>Columnname</th>
<th>Columnname </th>
<!--print same as above-->
</tr>
<% while(resultset.next()){ %>
<tr>
<td><%=resultset.getString("yourcolumnname")%> </td>
<td><%=resultset.getString("yourcolumnname")%> </td>
<!--print same as above-->
</tr>
<% } %>
</table>
推荐阅读
- mysql - 出现语法错误,但非常不确定出了什么问题
- c - 如何在没有 strstr 函数的情况下更改此代码?
- mysql - MySQL解析\u0080以上的字符
- asp.net-core - ASP.NET Core 2.0 - 用户在一小时内注销
- java - 通过 JDBC URL 使用 TestContainers DB 但使用 @Rule 时出错
- python - Tweepy 搜索查询问题
- python-3.x - Python 请求基于 URL 的程序从气候网站 (http://www.climate.weather.gc.ca) 自动批量下载数据
- ruby - 什么是正则表达式来获取一个或多个单词字符的字符串,除了只有数字字符的字符串?
- node.js - 有没有办法恢复正在运行的节点 .js 文件?
- c# - 有没有办法在 switch 语句中输入所有情况?