0
我需要某人来帮助我检查为什么数据没有记录到数据库中?当我尝试“检出”购物车时,购物车的记录应该执行sql语句以将数据传输到数据库。下面的代码和错误:当将确认的购物车插入数据库时(无法插入),Java MVC会创建sqlException
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1112)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2486)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2519)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2304)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.GeneratedConstructorAccessor12.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:346)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at servlet.TicketDataBean.getConnection(TicketDataBean.java:16)
,代码:
Cart.jsp
<body>
<form action="ConfirmPurchaseServlet" method="POST" style="text-align: right; margin-top: -40px;margin-right: 10px;">
<input type="submit" name="Submit" value="Check out" class="btn btn-success">
</form>
</body>
ConfirmPurchaseServlet.java
package place;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class ConfirmPurchaseServlet
*/
@WebServlet("/ConfirmPurchaseServlet")
public class ConfirmPurchaseServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
HttpSession session = request.getSession();
Cart cart = (Cart) session.getAttribute("Cart");
try{
cart.finishtransaction();
}catch(Exception e){e.printStackTrace();}
response.sendRedirect(response.encodeRedirectURL("/ItineryAirport/CheckConfirmation.jsp")); //to another page
}
/**
* @see HttpServlet#HttpServlet()
*/
public BillServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}
Cart.java
public void finishtransaction()throws Exception{
Enumeration e = items.elements();
connection = TicketDataBean.getConnection();
statement = connection.createStatement();
totalPrice=0.00;
while (e.hasMoreElements()){
Flight item = (Flight) e.nextElement();
String itemQuantity = "" + item.getQuantity();
totalPrice = totalPrice + item.getPrice() * Integer.parseInt(itemQuantity);
String tourCode = item.getTourcode();
String updateString = "INSERT INTO cart " +
" Values (" + CARTID + ", '" +
item.getTitle() + "', '" +
item.getAirline() + "', '" +
item.getTravelto() + "', '" +
item.getTravelfrom() + "', " +
item.getPrice() + ", " +
item.getQuantity() + ") ";
statement.executeUpdate(updateString);
System.out.println(statement);
CARTID++;
}
}
好的,我会试试 –
更新了答案 - 应该在finishTransaction()方法的底部。 – mikemil
好像错误仍然一样。有没有其他的可能性,为什么不能插入数据? –