使用JDBC+JSP分層實現新聞管理系統註冊、登錄功能

一、展示層

  • 註冊:在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;
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章