⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 iuserdaoimpl.java

📁 运用JSP/servlet/JavaBean 技术
💻 JAVA
字号:
package com.lovo.dao;

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

import com.lovo.myutil.DBManager;
import com.lovo.po.User;

/**
 * <p>IUserDao的实现类</p>
 * @author fenglu
 *
 */
public class IUserDaoImpl implements IUserDao
{

	/* (非 Javadoc)
	 * @see com.lovo.dao.IUserDao#addUser(com.lovo.po.User)
	 */
	public boolean addUser(User user)
	{
		/** 存数据库连接对象 */
		Connection conn = null;
		/** 存预编译语句 */
		PreparedStatement state = null;
		/** 存查询返回结果集 */
		ResultSet rs = null;
		String sql = "insert into t_user(emailName, password) values(?, ?)";//添加新用户语句
		/** 获取数据库连接对象 */
		conn = DBManager.getConnection();
		int result = -1;//存储添加用户后的返回信息
		try
		{
			/** 创建sql的预编译语句 */
			state = conn.prepareStatement(sql);
			/** 为sql设置帐号名参数 */
			state.setString(1, user.getEmailName());
			/** 为sql设置密码参数 */
			state.setString(2, user.getPassword());
			/** 执行添加 */
			result = state.executeUpdate();
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		finally
		{
			/** 关闭所有的数据库连接对象 */
			DBManager.closeAll(conn, state, rs);
		}
		return result == 1 ? true : false;//返回1表添加成功,否则添加失败
	}

	/* (非 Javadoc)
	 * @see com.lovo.dao.IUserDao#checkUser(com.lovo.po.User)
	 */
	public User checkUser(User user)
	{
		/** 存数据库连接对象 */
		Connection conn = null;
		/** 存预编译语句 */
		PreparedStatement state = null;
		/** 存查询返回结果集 */
		ResultSet rs = null;
		String  emailName = user.getEmailName();//获得待验帐号
		String  password  = user.getPassword();//获得待验密码
		User    reUser    = null;//保存返回的对象
		boolean exist     = false;//标志用户是否存在
		String sql = "select userId from t_user" +
				" where emailName = ? and password = ?";//查询用户id语句
		/** 获取数据库连接对象 */
		conn = DBManager.getConnection();
		try
		{
			/** 创建sql的预编译语句 */
			state = conn.prepareStatement(sql);
			/** 为sql设置帐号名参数 */
			state.setString(1, emailName);
			/** 为sql设置密码参数 */
			state.setString(2, password);
			/** 执行查询 */
			rs = state.executeQuery();
			/** 
			 * 第一次调用此方法可得知是否有匹配的帐号和密码
			 */
			exist = rs.next();
			/**
			 * 如果exist为true就创建User对象并封装所有用户信息到其中
			 */
			if(exist)
			{
				/** 创建用户并封装信息 */
				reUser = new User();
				reUser.setUserId(rs.getInt("userId"));
				reUser.setEmailName(emailName);
				reUser.setPassword(password);
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		finally
		{
			/** 关闭所有的数据库连接对象 */
			DBManager.closeAll(conn, state, rs);
		}
		return reUser;//如果产生异常返回null,当作该用户不匹配,不让登陆。
	}

	/* (非 Javadoc)
	 * @see com.lovo.dao.IUserDao#isEmailNameExist(java.lang.String)
	 */
	public int isEmailNameExist(String emailName)
	{
		/** 存数据库连接对象 */
		Connection conn = null;
		/** 存预编译语句 */
		PreparedStatement state = null;
		/** 存查询返回结果集 */
		ResultSet rs = null;
		int userId = -1;//表示被检测用户的userId
		boolean exist = false;//标志用户是否存在
		String sql = "select userId from t_user where emailName = ?";//查询帐号是否存在语句
		/** 获取数据库连接对象 */
		conn = DBManager.getConnection();
		try
		{
			/** 创建sql的预编译语句 */
			state = conn.prepareStatement(sql);
			/** 为sql设置帐号名参数 */
			state.setString(1, emailName);
			/** 执行查询 */
			rs = state.executeQuery();
			/** 
			 * 第一次调用此方法可得知是否有这个帐号存在,
			 * 为false这个帐号不存在,
			 * true表示这个帐号已经有人使用
			 */
			exist = rs.next();
			/**
			 * 如果exist为true那么获得他的userId
			 */
			if(exist)
			{
				userId = rs.getInt("userId");
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		finally
		{
			/** 关闭所有的数据库连接对象 */
			DBManager.closeAll(conn, state, rs);
		}
		return userId;
	}

}

⌨️ 快捷键说明

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