package user.dao;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.lang3.StringUtils;

import user.domain.User;
import user.exception.SQLException;
import user.web.utils.JDBCUtils;

public class UserDAO {
	static QueryRunner quer = new QueryRunner(JDBCUtils.getDataSource());

	public User findByLogonNameAndLogonPwd(User user) {
		String sql = "select * farom s_user where  logonName =? and logonPwd=?";
		User logonUser;
		try {
			logonUser = quer.query(sql, new BeanHandler<User>(User.class),
					user.getLogonName(), user.getLogonPwd());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new SQLException("SQL有错");
		}
		return logonUser;
	}

	public void save(User u) {
		String sql = "insert into s_user values(null,?,?,?,?,?,?,?,?,?,?,?)";
		Object[] args = { u.getUserName(), u.getLogonName(), u.getLogonPwd(),
				u.getSex(), u.getBirthday(), u.getEducation(),
				u.getTelephone(), u.getInterest(), u.getPath(),
				u.getFilename(), u.getRemark() };
		try {
			quer.update(sql, args);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException();
		}
	}

	public static List<User> findList(User u) {
		String sql = "select * from s_user where 1=1  ";
		List argList = new ArrayList();
		if (StringUtils.isNotBlank(u.getUserName())) {
			sql += "and userName like ?";
			argList.add("%" + u.getUserName() + "%");
		}
		if (StringUtils.isNotBlank(u.getSex())) {
			sql += " and sex=? ";
			argList.add(u.getSex());
		}
		if (StringUtils.isNotBlank(u.getEducation())) {
			sql += " and education=? ";
			argList.add(u.getEducation());
		}
		if (StringUtils.isNotBlank(u.getIsUpload())) {
			if (u.getIsUpload().equals("1")) {
				sql += " and filename is not null";
			} else if (u.getIsUpload().equals("2")) {
				sql += " and filename is null";
			}
		}
		List<User> users = null;
		try {
			users = quer.query(sql, new BeanListHandler<User>(User.class),
					argList.toArray());
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		return users;
	}

	public void delete(User u) {
		String sql = "delete from s_user where userID=?";
		try {
			quer.update(sql, u.getUserID());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}

	public User findById(int userID) {
		String sql = "select * from s_user where userID=?";
		User u = null;
		try {
			u = quer.query(sql, new BeanHandler<User>(User.class), userID);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
		return u;
	}

	public void update(User u, boolean isEditUpload) {
		String sql = "";
		if (isEditUpload) {
			sql = "update s_user set userName=?,logonName=?,logonPwd=?,sex=?,birthday=?,education=?,telephone=?,interest=?,path=?,filename=?,remark=? where userID=?";
			Object[] args = { u.getUserName(), u.getLogonName(),
					u.getLogonPwd(), u.getSex(), u.getBirthday(),
					u.getEducation(), u.getTelephone(), u.getInterest(),
					u.getPath(), u.getFilename(), u.getRemark(), u.getUserID() };
			updateMethod(sql, args);
		} else {
			sql = "update s_user set userName=?,logonName=?,logonPwd=?,sex=?,birthday=?,education=?,telephone=?,interest=?,remark=? where userID=?";
			Object[] args = { u.getUserName(), u.getLogonName(),
					u.getLogonPwd(), u.getSex(), u.getBirthday(),
					u.getEducation(), u.getTelephone(), u.getInterest(),
					u.getRemark(), u.getUserID() };
			updateMethod(sql, args);
		}
	}

	public void updateMethod(String sql, Object[] obj) {
		try {
			quer.update(sql, obj);
		} catch (Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
}
最近下载更多
xuyongff  LV24 2020年3月3日
luo123456789  LV3 2019年9月3日
独行侠梦  LV4 2017年11月22日
sevenvsky  LV27 2017年1月12日
wangkun999  LV10 2016年7月23日
prime2015  LV14 2016年3月8日
le2010  LV1 2015年1月29日
ding1209  LV13 2014年7月14日
limtno  LV23 2014年7月11日
annoby  LV23 2014年6月16日
最近浏览更多
cqbscxh  LV11 2022年9月19日
xuyongff  LV24 2019年11月4日
luo123456789  LV3 2019年9月3日
2544183455 2019年8月2日
暂无贡献等级
z924931408  LV25 2019年3月11日
654321zq  LV2 2018年10月24日
lee123321  LV22 2018年8月22日
wkc  LV21 2018年5月14日
liuxufen  LV8 2018年4月20日
cyr921104  LV9 2018年3月19日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友