servlet中的数据库程序

qq_31666875 2016-01-25 04:18:31
本人刚接触servlet 在用servlet进行数据库设计时出现了些问题,网页显示error:null

这是java代码
package sjk;

import javax.servlet.*;
import javax.servlet.http.*;

import java.io.*;
import java.sql.*;



public class simpleRegistration extends HttpServlet {

// Use a prepared statement to store a student into the database
private PreparedStatement pstmt;



/** Initialize global variables */

public void init() throws ServletException {

initializeJdbc();

}



/** Process the HTTP Post request */

public void doPost(HttpServletRequest request, HttpServletResponse

response) throws ServletException, IOException {

response.setContentType("text/html");

PrintWriter out = response.getWriter();



// Obtain parameters from the client
String lastName = request.getParameter("lastName");

String firstName = request.getParameter("firstName");

String mi = request.getParameter("mi");

String phone = request.getParameter("telephone");

String email = request.getParameter("email");

String address = request.getParameter("street");

String city = request.getParameter("city");

String state = request.getParameter("state");

String zip = request.getParameter("zip");



try {

if (lastName.length() == 0 || firstName.length() == 0) {

out.println("Last Name and First Name are required");

return; // End the method
}



storeStudent(lastName, firstName, mi, phone, email, address,

city, state, zip);



out.println(firstName + " " + lastName +

" is now registered in the database");

}

catch(Exception ex) {

out.println("Error: " + ex.getMessage());

}

finally {

out.close(); // Close stream
}

}



/** Initialize database connection */

private void initializeJdbc() {

try {

// Declare driver and connection string
String driver = "com.mysql.jdbc.Driver";

String user="root"; //root改成你实际的数据库登录名
String passWord="1234"; //123 改为实际的密码
String connectionString = "jdbc:mysql://pc-win8/shiyan";

// For MySQL
// String driver = "com.mysql.jdbc.Driver";
// String connectionString = "jdbc:mysql://localhost/test";
// For Oracle
// String driver = "oracle.jdbc.driver.OracleDriver";
// String connectionString = "jdbc:oracle:" +
// "thin:scott/tiger@liang.armstrong.edu:1521:orcl";


// Load the driver
Class.forName(driver);



// Connect to the sample database
Connection conn = DriverManager.getConnection

(connectionString,user,passWord);



// Create a Statement
pstmt = conn.prepareStatement("insert into Address " +

"(lastName, firstName, mi, telephone, email, street, city, "

+ "state, zip) values (?, ?, ?, ?, ?, ?, ?, ?, ?)");

}

catch (Exception ex) {

ex.printStackTrace();

}

}



/** Store a student record to the database */

private void storeStudent(String lastName, String firstName,

String mi, String phone, String email, String address,

String city, String state, String zip) throws SQLException {

pstmt.setString(1, lastName);

pstmt.setString(2, firstName);

pstmt.setString(3, mi);

pstmt.setString(4, phone);

pstmt.setString(5, email);

pstmt.setString(6, address);

pstmt.setString(7, city);

pstmt.setString(8, state);

pstmt.setString(9, zip);

pstmt.executeUpdate();

}

}


网页的界面是酱紫的,不要嫌弃他简陋。。。菜鸟只是想尝试一下
填好之后点击submit就会显示error:null
根本不能把数据存到数据库里啊啊啊
...全文
141 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_31666875 2016-01-25
  • 打赏
  • 举报
回复
引用 4 楼 shixitong 的回复:
看提示应该是statement被关闭了 你可以这样在initializeJdbc这个方法里你直接return Connection
Connection conn = DriverManager.getConnection(connectionString,user,passWord);
return conn;
然后在用的地方产生Statement,用完关掉,这样应该就不会出现这种被关闭的情况,即你每次用之前都是重新生成的
原谅我的愚蠢。。添加了return之后,用完关掉是什么意思,怎么关啊嘤嘤嘤 还有就是我重启了tomcat这个问题就解决了,那我得statement八小时后还会被关掉吗
qq_31666875 2016-01-25
  • 打赏
  • 举报
回复
在网上看了一堆什么mysql会自动断开连接啥的解决方法没看懂,然后。。。。 又重启了一下tomcat结果就又正常了。。。。。 谁能告诉我这是为什么。。。
shixitong 2016-01-25
  • 打赏
  • 举报
回复
看提示应该是statement被关闭了 你可以这样在initializeJdbc这个方法里你直接return Connection
Connection conn = DriverManager.getConnection(connectionString,user,passWord);
return conn;
然后在用的地方产生Statement,用完关掉,这样应该就不会出现这种被关闭的情况,即你每次用之前都是重新生成的
qq_31666875 2016-01-25
  • 打赏
  • 举报
回复
引用 1 楼 shixitong 的回复:
打个断点调试下
重启了一下mysql的workbench就好了,但是现在有显示 Error: No operations allowed after statement closed. 感觉还是数据库的问题 这个mysql真的很不好用啊啊啊啊啊
qq_31666875 2016-01-25
  • 打赏
  • 举报
回复
好吧 问题解决了,好像是mysql的原因,我重启了一下mysql的workbench就好了,但是又出现了一个问题 点击submit之后网页会显示 Error: No operations allowed after statement closed. 感觉是什么关闭了。。。。。怎么回事。。。
shixitong 2016-01-25
  • 打赏
  • 举报
回复
打个断点调试下

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧