目前我正在做一个应用程序,这是一个租车的应用程序。该应用程序可以租车,还车等。对于还车,我输入还车者的用户名,试图查询数据库并提取出他们正在租哪辆车,然后更新用户不再有租车,并更新汽车细节以变得可用。然而,我注意到,当我查询数据库时,我得到了一个空返回。我看到我的表有这个用户,所以也许我的语法是错误的,请帮助。
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
String carid = "";
String uname = req.getParameter("User_Name");
String defaulted = "User has no car";
int rs;
Connection conn = null;
java.sql.PreparedStatement st = null;
String nativeSQL = "";
ResultSet result =null;
try {
Context ctx = new InitialContext();
Context env = (Context) ctx.lookup("java:comp/env");
DataSource ds = (DataSource) env.lookup("jdbc/carRentalSystem");
conn = ds.getConnection();
conn.setAutoCommit(false);
result = st.executeQuery("SELECT * FROM userdetails where User_Name='"+ uname+"'");
if(result.next()) {
carid= result.getString("Car_Rental");
}
st = conn.prepareStatement("update userdetails SET Car_Rental ='" + defaulted+ "' where User_Name='" + uname+ "' ");
st.clearParameters();
rs = st.executeUpdate();
st = conn.prepareStatement("update cardetails SET Availability = 'Available' where id='" + carid+ "'");
st.clearParameters();
rs = st.executeUpdate();
if (rs != 0) {
res.sendRedirect("carRental.jsp");
return;
} else {
}
conn.commit();
} catch (Exception e) {
try{conn.rollback();}catch(Exception e1){}
e.printStackTrace();
} finally {
try {
if (st != null)
st.close();
} catch (java.sql.SQLException e) {
}
try {
if (conn != null)
conn.close();
} catch (java.sql.SQLException e) {
}
}
}
INFO: Server startup in 7620 ms
java.lang.nullpointerException位于com.rental.servlet.adminReturnCarServlet.doPost(adminReturnCarServlet.java:63),位于javax.servlet.http.httpservlet.service(httpservlet.java:648),位于javax.servlet.http.httpservlet.service(httpservlet.java:729),位于org.apache.catalina.core.applicationFilterChain.InternaldoFilter(applicationFilterChain.java:292),位于doFilter(wsfilter.java:52),org.apache.catalina.core.applicationFilterChain.internaldoFilter(applicationFilterChain.java:240),org.apache.catalina.core.applicationFilterChain.doFilter(applicationFilterChain.java:207),org.apache.catalina.core.standardWrapperValve.invoke(StandardWrapperValve.invoke(StandardWrapperValve.invoke(StandardContIna.Valves.Abst在org.apache.catalina.core.standardHostValve.invoke(standardHostValve.java:141)在org.apache.catalina.valves.errorReportValve.invoke(errorReportValve.invoke(errorReportValve.java:79)在org.apache.catalina.valves.abractAccessLogValve.invoke(abractAccessLogValve.java:620)在)在org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1132)在org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)在org.apache.tomcat.util.net.nioEndpoint$socketProcessor.dorun(NioEndpoint.java:1539)在ent.threadpoolexecutor$worker.run(threadpoolexecutor.java:624)在org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61)在java.lang.thread.run(thread.java:748)
您的错误是因为java.sql.PreparedStatement st=null;
在行处执行之前没有初始化:
st.executeQuery("SELECT * FROM userdetails where User_Name='"+ uname+"'");
希望能有所帮助。
我有两份清单: 我想要一个新的名单,比如: 我尝试了以下方法: 但有一些严重的错误
问题内容: 我有2张桌子,如下所示: serial_table serial_key CHARACTER VARYING(20), PRIMARY KEY(id, serial_key) serial_rate: serial_key CHARACTER VARYING(20), rate NUMERIC, PRIMARY KEY(id, serial_key), FOREIGN KEY (id,
我有两个搜索词“86746184549”和“3302093809”。我正在执行两个单独的术语查询,以获取与每个ID匹配的一个文档。 和 我认为terms查询在这里不起作用,因为它不会返回包含不同字段的文档。 我之所以要组合查询是因为,假设我有100个这样的术语,那么我将打100个电话!!到elasticsearch服务器。
问题内容: 我有和桌子。 询问: 返回474条记录 对于这些记录,我想添加的表成的表。 示例 :如果对于第一条记录,客户的id是9 ,地址的也是9,那么我想在地址表的cid列中插入9。 我试过了: 但这似乎不起作用。 问题答案: 这是Postgres UPDATE JOIN格式: 这是其他变体:http : //mssql-to- postgresql.blogspot.com/2007/12/u
问题内容: 是否有一个查询,我可以用一个查询交换两行的值? 问题答案: 您可以在本文中看到解决方案 http://www.microshell.com/database/sql/swap-values-in-2-rows- sql/ 看一下: 优雅的方法 ,进行联接以从2行中获取数据并在1行中进行交换,之后进行更新就很容易了。 例如:
问题内容: 我在返回具有唯一字段的postgresql查询中的前X条记录时遇到了很大的帮助,现在遇到了我遇到的问题,并尝试尽我所能进行优化(尽管我通常不喜欢提前加载优化,这是一种独特的情况)。 想象一个应用程序中的三个实体: 字段看起来像这样: 要求 : 返回10个实例,其中: user_id不等于3 post_id是唯一的 没有其他具有该post_id和helped_by_user_id为3的实