loginmanager.java

来自「基于Sturts的DispatchAction的消息管理系统」· Java 代码 · 共 64 行

JAVA
64
字号
package com.bjsxt.messages.manager;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.bjsxt.messages.DBUtils;
import com.bjsxt.messages.MessageException;
import com.bjsxt.messages.model.User;

public class LoginManager {
	
	private static LoginManager loginManager;
	
	private LoginManager(){}
	
	public synchronized static LoginManager newInstance(){
		if(loginManager == null){
			loginManager = new LoginManager();
		}
		return loginManager;
	}
	
	public User login(String username,String password){
		Connection conn = null;
		ResultSet rs1 = null;
		PreparedStatement ps = null;
		try {
			conn = DBUtils.getConnection();
			User user = new User();
			ps = conn.prepareStatement("select * from t_user where username = ?");
			ps.setString(1,username);
			rs1 = ps.executeQuery();
			
			if(rs1.next()){
				String pwd = rs1.getString("password");
				if(!pwd.equals(password)){
					throw new MessageException("login.password_error","用户密码错误");
				}
				
				user.setId(rs1.getInt("id"));
				user.setUsername(username);
			}else{
				throw new MessageException("login.user_notfound","没有这个用户");
			}
			
			return user;
		} catch (SQLException e) {
			e.printStackTrace();
			try {
				conn.rollback();
			} catch (SQLException e1) {
				e1.printStackTrace();
			}
			throw new MessageException("login.error","执行数据库查询操作出现异常!");
		} finally{
			DBUtils.closeResultSet(rs1);
			DBUtils.closeStatement(ps);
			DBUtils.closeConnection(conn);
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?