我正在做一个项目,需要在MySQL数据库中搜索以前的订单并在XHTML页面上显示它们。我在使用XHTML调用该方法时遇到问题,所以我认为它在我的语法中。我希望也许第二组眼睛可以提供帮助。
这是Java:
import java.sql.*;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.sql.rowset.CachedRowSet;
import javax.faces.bean.RequestScoped;
@ManagedBean
@SessionScoped
@RequestScoped
public class orderStatus {
private String OrderNumber;
private String EMail;
public String SearchOrderNumber()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
return"internal error, the database driver is not found";
}
final String DATABASE_URL = "jdbc:mysql://localhost/HPLaptopWeb";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try
{
connection = DriverManager.getConnection(DATABASE_URL, "team", "secret");
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT * FROM orders where orderNum = '" + OrderNumber + "'");
if(resultSet.next())
{
return"showOrder";
}
else
{
return"Order Number not Valaid!";
}
}
catch (SQLException e)
{
e.printStackTrace();
return "Order Not Okay";
}
finally
{
try
{
resultSet.close();
statement.close();
connection.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public String SearchEmail()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch (ClassNotFoundException e)
{
return"internal error, the database driver is not found";
}
final String DATABASE_URL = "jdbc:mysql://localhost/HPLaptopWeb";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try
{
connection = DriverManager.getConnection(DATABASE_URL, "team", "secret");
statement = connection.createStatement();
resultSet = statement.executeQuery("SELECT * FROM orders where email = '" + EMail + "'");
if(resultSet.next())
{
return"showOrder";
}
else
{
return"Email not Valaid!";
}
}
catch (SQLException e)
{
e.printStackTrace();
return "Email Not Okay";
}
finally
{
try
{
resultSet.close();
statement.close();
connection.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public String orderSize()
{
String itemsInOrder = "";
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e)
{
return("Internal Error! Database driver is not found");
}
//statement and connections
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try
{
final String DATABASE_URL = "jdbc:mysql://localhost/HPLaptopWeb";
connection = DriverManager.getConnection(DATABASE_URL, "team", "secret");
statement = connection.createStatement();
//query to get how many items in order
resultSet = statement.executeQuery("SELECT COUNT(*) FROM orders");
if(resultSet.next())
{
itemsInOrder = "" + resultSet.getInt(1);
}
}
catch(SQLException e)
{
e.printStackTrace();
return("Internal Error! Try again later");
}
finally
{
try
{
statement.close();
connection.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
return itemsInOrder;
}
public ResultSet showOrder () throws SQLException
{
try
{
Class.forName("com.mysql.jdbc.Driver");
}
catch(Exception e)
{
throw new SQLException("Unable to obtain DataSource");
}
final String DATABASE_URL = "jdbc:mysql://localhost/hplaptopweb";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try
{
//connection to the database
connection = DriverManager.getConnection(DATABASE_URL, "team", "secret");
//create statement
statement = connection.createStatement();
PreparedStatement getComponents = connection.prepareStatement(
"SELECT * FROM orders");
CachedRowSet rowSet = new com.sun.rowset.CachedRowSetImpl();
rowSet.populate(getComponents.executeQuery());
return rowSet;
}
catch(SQLException e)
{
e.printStackTrace();
throw new SQLException( "Unable to connect to DataSource");
}
finally
{
try
{
connection.close();
statement.close();
resultSet.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
public String getOrderNumber() {
return OrderNumber;
}
public void setOrderNumber(String OrderNumber) {
this.OrderNumber = OrderNumber;
}
public String getEMail() {
return EMail;
}
public void setEMail(String EMail) {
this.EMail = EMail;
}
}
以下是搜索订单的XHTML
<h:form>
<div id="OrderSearch">
<label>Search by Order Number:</label>
<br/>
<h:inputText value="#{orderStatus.orderNumber}"/>
<h:commandButton id="ONSearch" value="Search For Your Order" action="#{orderStatus.searchOrderNumber}"/>
<br/>
<br/>
<label>Search by E-Mail:</label>
<br/>
<h:inputText value="#{orderStatus.EMail}"/>
<h:commandButton id="EMSearch" value="Search For Your Order" action="#{orderStatus.searchEmail}"/>
</div>
</h:form>
非常感谢能提供的任何帮助。