【发布时间】:2021-07-11 16:53:50
【问题描述】:
这是我得到错误的那一行
List<Map<String, Object>> users = jdbcTemplate.queryForList("select * from user where email=? and pass=?",new Object[] { email, pass }, new MyRowMapper());
这是整个代码:
package com.example.dao;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Repository;
import com.example.model.User;
@Repository
public class UserDao {
@Autowired
private JdbcTemplate jdbcTemplate;
public int insert(User user) {
return jdbcTemplate.update("insert into user values(?,?,?,?,?)",
new Object[] { user.getName(), user.getEmail(), user.getPass(),user.getProfileimage(),user.getExpensetable() });
}
public int updateProfile(User user) {
return jdbcTemplate.update("update user set name=?,pass=?,profile=?,expensetable=? where email=?",
new Object[] { user.getName(), user.getPass(), user.getProfileimage(),user.getExpensetable(), user.getEmail() });
}
public User login(String email, String pass) {
User user = null;
List<Map<String, Object>> users = jdbcTemplate.queryForList("select * from user where email=? and pass=?",new Object[] { email, pass }, new MyRowMapper());
if (users.size() > 0) {
user = (User) users.get(0);
}
return user;
}
private class MyRowMapper implements RowMapper<User> {
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setName(rs.getString(1));
user.setEmail(rs.getString(2));
user.setPass(rs.getString(3));
user.setProfileimage(rs.getString(4));
user.setExpensetable(rs.getString(5));
return user;
}
}
}
这是错误:
严重:servlet [dispatcher] 在路径 [/ExpenseSpringProject] 的上下文中的 Servlet.service() 引发异常 [请求处理失败;嵌套异常是 org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [select * from user where email=?并通过=?];无效的参数值:java.io.NotSerializableException;嵌套异常是 java.sql.SQLException: Invalid argument value: java.io.NotSerializableException] 的根本原因
java.io.NotSerializableException: com.example.dao.UserDao$MyRowMapper
【问题讨论】:
-
你遇到了什么错误? (总是,总是,总是告诉我们错误是什么。)
-
我在第 31 行遇到错误,我应该改变什么 你应该改变你的问题并添加你得到的错误信息。回答者手动解析您的代码以查找错误的原因是什么?
-
已经更新
-
这个签名的方法在当前版本的Spring中是deprecated。