public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
public class UserDao {
/**
* 登錄方法
* @param loginUser 只有用戶名和密碼
* @return user包含用戶全部資料,沒有查詢到,回傳null
*/
//宣告JDBCTemplate物件共用
protected static JdbcTemplate template = new JdbcTemplate(JDBCutil.getDataSource());
/**
* 登錄方法
* @param loginUser 只有用戶名和密碼
* @return user包含用戶全部資料,沒有查詢到,回傳null
*/
public static User login(User loginUser){
try {
//1.撰寫sql
String sql = "select * from user where username = ? and password = ?";
//2.呼叫query方法
User user = template.queryForObject(sql,
new BeanPropertyRowMapper<User>(User.class),
loginUser.getUsername(), loginUser.getPassword());
return user;
} catch (DataAccessException e) {
return null;
}
}
}/**
* Created by Administrator on 2020/3/16 18:51
* @author Administrator
*/
//用來操作登陸界面
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1.設定編碼
req.setCharacterEncoding("utf-8");
//2.獲取請求引數
String username = req.getParameter("username");
String password = req.getParameter("password");
//3.封裝user物件
User loginUser = new User();
loginUser.setUsername(username);
loginUser.setPassword(password);
//4.呼叫UserDao的login方法
User user = UserDao.login(loginUser);
//5.判斷user
if(user == null){
//登錄失敗
req.getRequestDispatcher("/failServlet").forward(req,resp);
}else{
//登錄成功
//存盤資料
req.setAttribute("user",user);
//轉發
req.getRequestDispatcher("/successServlet").forward(req,resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doGet(req,resp);
}
}
//4.呼叫UserDao的login方法
User user = UserDao.login(loginUser);
當我Debug到上面這個代碼時候程式就會終止然后報錯
java.lang.ClassNotFoundException: org.springframework.dao.DataAccessException
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180)
at com.servlet.LoginServlet.doGet(LoginServlet.java:37)
at com.servlet.LoginServlet.doPost(LoginServlet.java:55)
uj5u.com熱心網友回復:
為啥子我要創建一個接受物件就要報錯,我醉了,求大神解答呀
uj5u.com熱心網友回復:
java.lang.ClassNotFoundException: org.springframework.dao.DataAccessException不都提示你了嗎,沒有這個類
uj5u.com熱心網友回復:
如果是缺少jar,編譯應該通不過可能是jar沖突,
你還是把DataAccessException 換掉吧,直接用 Exception
uj5u.com熱心網友回復:
我導了jdbc的包了呀
uj5u.com熱心網友回復:
我感覺是沒有依賴注入吧!要么就是構造引數、set、注解還有new物件,我看你啥都沒有直接定義靜態方法呼叫uj5u.com熱心網友回復:
你報錯的類,是屬于spring-tx-4.3.8.RELEASE.jar你看下你的專案是否有這個包,版本號不一致沒關系
如果沒有就匯入,也可以像3L說的那樣,用Exception捕獲就好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113199.html
標籤:Java EE
上一篇:雞兔同籠優化
