首页>代码>java web学习入门的失物招领系统>/findu-master/src/com/findu/dao/UserDao.java
package com.findu.dao;

import com.findu.entity.User;
import com.findu.utils.JDBCUtils;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class UserDao {
	
	/**
	 * 通过用户名查找用户
	 * @param name
	 * @return
	 */
	public static User findUserByName(String name) throws SQLException{
		Connection conn = null;
		PreparedStatement stat = null;
		ResultSet rs = null;
		
		try {
			//3.获取连接后发送sql语句访问数据库
			conn = JDBCUtils.getConnection();
			if(conn!=null){
				conn.setAutoCommit(false);//关闭自动提交,即开启手动事务
			}

			String sql = "select * from user where username=?";
			stat = conn.prepareStatement(sql);
			stat.setString(1, name);

			rs = stat.executeQuery();
			
			conn.commit();//提交事务

			if (rs.next()) {
				User u = new User();
				u.setId(rs.getInt("userid"));
				u.setName(rs.getString("username"));
				u.setPassword(rs.getString("userpassword"));
				u.setEmail(rs.getString("useremail"));
				u.setPhone(rs.getString("userphone"));
				u.setBirthday(rs.getDate("userbirthday"));
				u.setAddress(rs.getString("useraddress"));
				u.setHead(rs.getString("userhead"));
				u.setExplain(rs.getString("userexplain"));
				u.setQq(rs.getString("userqq"));
				u.setGender(rs.getString("usergender"));
				User localUser1 = u;
				return localUser1;
			}
		} catch (Exception e) {
			if(conn!=null){
				try{
					conn.rollback();//发生异常回滚事务
				}catch(Exception e1){
					e1.printStackTrace();
					System.out.println("回滚出错");
				}	
			}
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs, stat, conn);
		}
		return null;
	}
	
	/**
	 * 通过手机号查找用户
	 * @param phone
	 * @return
	 */
	public static User findUserByPhone(String phone) throws SQLException{
		Connection conn = null;
		PreparedStatement stat = null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();

			String sql = "select * from user where userphone=?";
			stat = conn.prepareStatement(sql);
			stat.setString(1, phone);

			rs = stat.executeQuery();

			if (rs.next()) {
				User u = new User();
				u.setId(rs.getInt("userid"));
				u.setName(rs.getString("username"));
				u.setPassword(rs.getString("userpassword"));
				u.setEmail(rs.getString("useremail"));
				u.setPhone(rs.getString("userphone"));
				u.setBirthday(rs.getDate("userbirthday"));
				u.setAddress(rs.getString("useraddress"));
				u.setHead(rs.getString("userhead"));
				u.setExplain(rs.getString("userexplain"));
				u.setQq(rs.getString("userqq"));
				u.setGender(rs.getString("usergender"));
				return u;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs, stat, conn);
		}
		return null;
	}
	
	/**
	 * 通过邮箱查找用户
	 * @param email
	 * @return
	 */
	public static User findUserByEmail(String email) throws SQLException{
		Connection conn = null;
		PreparedStatement stat = null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();

			String sql = "select * from user where useremail=?";
			stat = conn.prepareStatement(sql);
			stat.setString(1, email);

			rs = stat.executeQuery();

			if (rs.next()) {
				User u = new User();
				u.setId(rs.getInt("userid"));
				u.setName(rs.getString("username"));
				u.setPassword(rs.getString("userpassword"));
				u.setEmail(rs.getString("useremail"));
				u.setPhone(rs.getString("userphone"));
				u.setBirthday(rs.getDate("userbirthday"));
				u.setAddress(rs.getString("useraddress"));
				u.setHead(rs.getString("userhead"));
				u.setExplain(rs.getString("userexplain"));
				u.setQq(rs.getString("userqq"));
				u.setGender(rs.getString("usergender"));
				return u;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs, stat, conn);
		}
		return null;
	}
	
	/**
	 * 通过用户id查找用户
	 * @param id
	 * @return
	 */
	public static User findUserById(int id) throws SQLException{
		Connection conn = null;
		PreparedStatement stat = null;
		ResultSet rs = null;
		try {
			conn = JDBCUtils.getConnection();

			String sql = "select * from user where userid=?";
			stat = conn.prepareStatement(sql);
			stat.setInt(1, id);

			rs = stat.executeQuery();

			if (rs.next()) {
				User u = new User();
				u.setId(rs.getInt("userid"));
				u.setName(rs.getString("username"));
				u.setPassword(rs.getString("userpassword"));
				u.setEmail(rs.getString("useremail"));
				u.setPhone(rs.getString("userphone"));
				u.setBirthday(rs.getDate("userbirthday"));
				u.setAddress(rs.getString("useraddress"));
				u.setHead(rs.getString("userhead"));
				u.setExplain(rs.getString("userexplain"));
				u.setQq(rs.getString("userqq"));
				u.setGender(rs.getString("usergender"));
				return u;
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(rs, stat, conn);
		}
		return null;
	}
	
	/**
	 * 保存用户信息,注册
	 * @param user
	 */
	public void save(User user) throws SQLException{
		Connection conn = null;
		PreparedStatement stat = null;
		try {
			conn = JDBCUtils.getConnection();

			String sql = "insert into user(username,userpassword,useremail,userphone)";
			sql = sql + "values(?,?,?,?)";
			stat = conn.prepareStatement(sql);

			stat.setString(1, user.getName());
			stat.setString(2, user.getPassword());
			stat.setString(3, user.getEmail());
			stat.setString(4, user.getPhone());

			stat.execute();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(null, stat, conn);
		}
	}

	/**
	 * 修改数据
	 * @param user
	 */
	public void changeUserData(User user) throws SQLException{
		Connection conn = null;
		PreparedStatement stat = null;
		try {
			conn = JDBCUtils.getConnection();

			String sql = "UPDATE USER SET usergender=?,userbirthday=?,userqq=?,useraddress=?,userexplain=? WHERE userid=?";
			stat = conn.prepareStatement(sql);

			stat.setString(1, user.getGender());
			java.sql.Date date = null;
			if (user.getBirthday() != null) {
				date = new java.sql.Date(user.getBirthday().getTime());
			}
			stat.setDate(2, date);
			stat.setString(3, user.getQq());
			stat.setString(4, user.getAddress());
			stat.setString(5, user.getExplain());
			stat.setInt(6, user.getId());

			stat.execute();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(null, stat, conn);
		}
	}

	/**
	 * 修改密码
	 * @param newpass
	 * @param userid
	 */
	public void changePass(String newpass, int userid) throws SQLException{
		Connection conn = null;
		PreparedStatement stat = null;
		try {
			conn = JDBCUtils.getConnection();

			String sql = "UPDATE USER SET userpassword=? where userid=?";
			stat = conn.prepareStatement(sql);

			stat.setString(1, newpass);
			stat.setInt(2, userid);

			stat.execute();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.release(null, stat, conn);
		}
	}
}
最近下载更多
打死王二狗  LV1 2024年12月16日
张泽帅  LV6 2024年10月21日
亦叶灰  LV1 2024年10月18日
yunduan123  LV1 2024年10月14日
柳咪华沙  LV7 2024年6月28日
wangsheng818  LV4 2024年4月4日
大道至简  LV13 2023年11月3日
jiemomo  LV12 2023年10月19日
cybcyb  LV1 2023年9月5日
dowell_liu  LV1 2023年8月2日
最近浏览更多
233123 2024年12月20日
暂无贡献等级
xinshou11111x 2024年12月19日
暂无贡献等级
打死王二狗  LV1 2024年12月13日
asdxvfvfs 2024年12月3日
暂无贡献等级
3312djdad  LV2 2024年11月8日
亦叶灰  LV1 2024年10月17日
张泽帅  LV6 2024年10月17日
yunduan123  LV1 2024年10月7日
799743530  LV11 2024年7月10日
沐风7178 2024年7月8日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友