我是java新手。我正在使用MYSQL数据库在eclipse EE IDE中创建动态Web应用程序。我想将我的数据库连接到app到目前为止我已经为视图创建了JSP页面。下面是我的JSP代码和用于连接的Servlet。我无法使用此连接到数据库。我的JSP页面运行正常。但我认为问题在于Servlet。并且我还需要建议我将两个java文件用于Servlet,另一个用于从JSP页面获取数据。 提前谢谢。
的Servlet
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class NewServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Get user_name and pass_word from the JSP page
String toolfirst=request.getParameter("tname1");
String toolsecond=request.getParameter("tname2");
String toolvalue=request.getParameter("tvalue");
//Print the above got values in console
System.out.println("The username is" +toolfirst);
//Setting connection Parameters
String connectionparams=”jdbc:mysql://localhost:3306/tool”;
//database name
String db=”tool”;
//Mysql user name and password whichever you have given during installation
String uname=”root”
String psword=””
//Declaring classes required for Database support
Connection connection=null;
ResultSet rs;
try {
// Loading the available driver for a Database communication
Class.forName("org.gjt.mm.mysql.Driver");
//Creating a connection to the required database
connection = DriverManager.getConnection(jdbc:mysql://localhost:3306/tool, root, );
//Add the data into the database
String sql = "insert into usertable values (?,?)";
PreparedStatement prep =
connection.prepareStatement(sql);
//Setting the values which we got from JSP form
prep.setString(1, tname1);
prep.setString(2, tname2);
prep.executeUpdate();
prep.close();
}catch(Exception E){
//Any Exceptions will be caught here
System.out.println(“The error is==”+E.getMessage());
}
finally{
//After the entire execution this block will execute and the connection with database gets closed
connection.close();
}
}
JSP
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#add").click(function() {
$('#mytable tbody>tr:last').clone(true).insertAfter('#mytable tbody>tr:last');
$('#mytable tbody>tr:last #name').val('');
$("#mytable tbody>tr:last").each(function() {this.reset();});
return false;
});
});
</script>
</head>
<body>
<form method="post" action="NewServlet">
<a id="add" href="javascript:void(0)">Add another Credit card</a>
<table id="mytable" width="300" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr class="person">
<td><input type="text" name="tname1" id="name" /></td>
<td><input type="button" value="name" /></td>
<td><select name="tvalue">
<option>value1</option>
<option>value2</option></select>
<td><input type="text" name="tname2" id="name" /></td>
</tr>
</tbody>
</table>
<input type="submit" value="submit" >
</form>
<a href="logout.jsp">Logout</a>
</body>
</html>
答案 0 :(得分:1)
没有详细的错误消息我会说你在这里有编译错误:
connection = DriverManager.getConnection(jdbc:mysql://localhost:3306/tool, root, );
至少应该是:
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/tool", root, psword);
顺便删除ResultSet
。你不用它。
答案 1 :(得分:1)
在此语句的末尾有一个逗号,后面没有值。我认为你的论点数量不完整。我还假设userID和密码需要在参数列表中的某个位置。
DriverManager.getConnection(jdbc:mysql:// localhost:3306 / tool,root,);
哎呀 - 有人在我发布之前回答了这个问题。我猜我需要打字更快。