【发布时间】:2020-02-09 17:30:15
【问题描述】:
我是 Spring Framework 和 java 的新手。我正在为我的 Web 应用程序创建注册模块。我创建了 DAO、DTO、Dispatcher Servlet、控制器等等。当我提交表单时,它会将我重定向到我想去的地方,但没有数据添加到数据库中..
我的 userDTO.java
package com.lagan.dto;
public class userDto{
public String userId;
public String firstName;
public String lastName;
public String birthDate;
public int gender;
public String email;
public String password;
public String getUserId() {
return userId;
}
public String getUserId(String userId) {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getBirthDate() {
return birthDate;
}
public void setBirthDate(String birthDate) {
this.birthDate = birthDate;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password){
this.password = password;
}
}
userDao.java
package com.lagan.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.lagan.dbconnector.dbconnect;
import com.lagan.dto.userDto;
public class userDao {
public void create (userDto user) {
dbconnect db=new dbconnect();
Connection con=null;
try{
con=db.getConnections();
String sql="insert into tbluser values(?,?,?,?,?,?,?)";
PreparedStatement pre=con.prepareStatement(sql);
pre.setString(1,user.getUserId());
pre.setString(2,user.getFirstName());
pre.setString(3,user.getLastName());
pre.setString(4,user.getBirthDate());
pre.setInt(5,user.getGender());
pre.setString(6,user.getEmail());
pre.setString(7,user.getPassword());
pre.executeUpdate();
pre.close();
}catch (Exception e) {
e.printStackTrace();
}finally {
db.closeConnection(con);
}
}
}
userController.java
package com.lagan.controller;
import java.util.List;
import com.lagan.dao.userDao;
import com.lagan.dto.userDto;
public class userController {
public void create(userDto userDto){
userDao dao=new userDao();
dao.create(userDto);
}
}
验证.jsp
<%@ page import="com.lagan.controller.*,com.lagan.dto.*"%>
<%
String userId="aqwery";
String firstName=request.getParameter("firstName");
String lastName=request.getParameter("lastName");
String birthDate=request.getParameter("birthDate");
//int gender=request.getParameter("gender");
String email=request.getParameter("email");
String password=request.getParameter("password");
userDto dto=new userDto();
dto.getUserId(userId);
dto.setFirstName(firstName);
dto.setLastName(lastName);
dto.setBirthDate(birthDate);
//dto.setGender(gender);
dto.setEmail(email);
dto.setPassword(password);
userController uC=new userController();
uC.create(dto);
response.sendRedirect("home.html");
%>
dbconnect.java
package com.lagan.dbconnector;
import java.sql.*;
//import java.sql.Connection;
//import java.sql.DriverManager;
//import java.sql.SQLException;
public class dbconnect {
public dbconnect()
{
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public Connection getConnections() {
Connection conn=null;
try{
conn=DriverManager.getConnection("jdbc:mysql://localhost:80/project_lagan","root","");
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public void closeConnection(Connection con){
if(null!=con) {
try{
con.close();
}catch(SQLException e){}
}
}
}
它将我重定向到 home.html,但数据没有添加到数据库中。我不知道我做错了什么。请帮忙。
【问题讨论】:
-
你能分享一下你的数据库连接类吗? -- dbConnect()
-
嗨,我更新了问题,请看。
-
@KunwarSagar 我认为,您应该关闭连接而不是 PreparedStatement 。检查此链接alvinalexander.com/java/…
-
@hatice 我试过没有解决问题。显示的错误控制台是 com.mysql.jdbc.CommunicationsException:由于底层异常导致通信链接失败:** BEGIN NESTED EXCEPTION ** com.mysql.jdbc.CommunicationsException MESSAGE:由于底层异常导致通信链接失败:** BEGIN NESTED EXCEPTION ** 等等但它也在重定向..到家
-
@KunwarSagar 可能您无法从应用程序连接 mysql。首先,检查此链接dev.mysql.com/doc/mysql-getting-started/en 并确保您有 mysql 连接。如果有,请尝试将更改代码与我的解决方案联系起来。