一、展示層
- 註冊:在register.jsp提交註冊信息,保存到數據庫。
- 登錄:在login.jsp提交登錄信息,在數據庫中查下有沒這條數據。
二、數據訪問層
- 增加:發送sql語句,返回有多少條增加操作成功後直接關閉連接。
- 查詢:發送sql語句,返回ResultSet對象,要對ResultSet對象處理完成後才能關閉。
三、業務邏輯層
- 註冊:判斷executeUpdate()方法返回的數值是否大於0,大於0則註冊成功,否則註冊失敗。
- 登錄:判斷對executeQuery()方法返回對象處理後的數值是否大於0,大於0則登錄成功,否則登錄失敗。
關鍵代碼
package org.news.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.news.dao.BaseDao;
import org.news.dao.NewsUserDao;
import org.news.entity.NewsUser;
public class NewsUserImpl extends BaseDao implements NewsUserDao {
@Override
public int findUser(NewsUser newsUser) {
int num=0;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = this.getConnection();
String sql = "SELECT * FROM news_users WHERE uname=? AND upwd=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, newsUser.getUname());
pstmt.setString(2, newsUser.getUpwd());
rs = pstmt.executeQuery();
if (rs.next()) {
num=1;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
this.closeAll(conn, pstmt, rs);
}
return num;
}
@Override
public int insert(NewsUser newsUser) {
int result = 0;
try {
String sql = "INSERT INTO `NEWS_USERS`(`uname`, `upwd`) VALUES(?, ?)";
Object[] param={newsUser.getUname(),newsUser.getUpwd()};
result = this.executeUpdate(sql, param);
} catch (Exception e) {
e.printStackTrace();
} finally {
this.closeAll(conn, null, null);
}
return result;
}
}