dao

package com.gzsxt.dao.impl;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.jws.soap.SOAPBinding.Use;

import com.gzsxt.dao.SysUserDao;
import com.gzsxt.pojo.SysUser;
import com.gzsxt.util.BaseUtil;

public class SysUserDaoImpl implements SysUserDao{

	//實例化工具類
	BaseUtil util=new BaseUtil();
	
	@Override
	public SysUser userLogin(String username, String password) {
		SysUser user=null;
		//編寫SQL語句
		String sql ="select  * from s_user where s_userName=? and s_password=?";		
		PreparedStatement  statement=util.getConnection(sql);		
			try {
				//接收參數
				if(username!=null) {
				statement.setString(1, username);
				}
				if(password!=null) {
					statement.setString(2, password);
				}					
				//執行sql
				ResultSet result=statement.executeQuery();
				//判斷結果集中是否有數據
				while(result.next()) {
					user=new SysUser();
					user.setS_id(result.getInt("s_id"));//主鍵
					user.setS_username(result.getString("s_userName"));
					user.setS_uname(result.getString("s_uname"));
					user.setS_email(result.getString("s_email"));
					user.setS_phone(result.getLong("s_phone"));
					user.setS_password(result.getString("s_password"));
				}
				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}					
		return user;
	}

	@Override
	public boolean checkUserName(String username) {
		boolean flage=false;
				//編寫SQL語句
				String sql ="select  s_id from s_user where s_username=? ";		
				PreparedStatement  statement=util.getConnection(sql);		
					try {
						//接收參數
						if(username!=null) {
						statement.setString(1, username);
						}
										
						//執行sql
						ResultSet result=statement.executeQuery();
						//判斷結果集中是否有數據
						if(result.next()) {
							flage=true;
						}
						
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
		return flage;
	}

	@Override
	public int addUser(String username, String uname, String pwd, String email, Long phone) {
		//編寫sql語句
		String sql ="insert into s_user(s_userName,s_uname,s_password,s_email,s_phone) values(?,?,?,?,?)";
		PreparedStatement  statement=util.getConnection(sql);	
		int row=0;
		
		//存入參數				
			try {
				
				if(username!=null) {
				statement.setString(1, username);
				}
				if(uname!=null) {
					statement.setString(2, uname);
					}
				if(pwd!=null) {
					statement.setString(3, pwd);
					}
				if(email!=null) {
					statement.setString(4, email);
					}
				if(phone!=null) {
					statement.setLong(5,phone);
					}
				//執行添加方法
			 row=statement.executeUpdate();				
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		
		return row;
	}
	
	//currentPage當前頁面
	//pagesize每一頁存放數據的數量

	@Override
	public List<SysUser> getUserList(String name,int currentPage,int pageSize) {
		int index=0;
		List<SysUser> list=new ArrayList<SysUser>();
		//編寫SQL語句
		String sql ="select * from s_user ";	
		//判斷傳遞的用戶名是否爲空
		if(name!=null&&name.length()!=0) {
			//sql語句拼接
			sql+=" where s_userName like ?";
		}
		if(currentPage>0&&pageSize>0) {
			sql+=" limit ?,?";
		}
		PreparedStatement  statement=util.getConnection(sql);	
			try {
				//用戶名不爲空,sql語句入參
				if(name!=null&&name.length()!=0) {
					statement.setString(++index, "%"+name+"%");
				}
				if(currentPage>0&&pageSize>0) {	
					//當前頁碼與索引的關係
					//pageindex:第一頁爲0,之後每次的索引爲噹噹前頁碼減一乘以頁數???
					int pageindex=(currentPage-1)*pageSize;
					
					statement.setInt(++index, pageindex);
					statement.setInt(++index, pageSize);
				}
				
				//執行sql
				ResultSet result=statement.executeQuery();
				//判斷結果集中是否有數據
				while(result.next()) {
					SysUser user=new SysUser();
					user.setS_id(result.getInt("s_id"));//主鍵
					user.setS_username(result.getString("s_userName"));
					user.setS_uname(result.getString("s_uname"));
					user.setS_email(result.getString("s_email"));
					user.setS_phone(result.getLong("s_phone"));
					user.setS_password(result.getString("s_password"));
					//把對象存入到集合中
					list.add(user);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		return list;
	}

	@Override
	public int deleteUserById(int id) {
		String sql ="delete from s_user where s_id=?";

		PreparedStatement  statement=util.getConnection(sql);
		try {
			statement.setInt(1, id);
			int number=statement.executeUpdate();//增刪改都是用此方法
			return number;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return 0;
	}

	@Override
	public SysUser getUserById(int id) {
		SysUser user=null;
		//編寫SQL語句
		String sql ="select  * from s_user ";		
			try {
				if(id>0) {
					sql+="where s_id=?";
					}
				//執行sql
			PreparedStatement  statement=util.getConnection(sql);
				//接收參數
				if(id>0) {
				statement.setInt(1, id);
				}
				//執行sql
				ResultSet result=statement.executeQuery();
				//判斷結果集中是否有數據
				if(result.next()) {
					user=new SysUser();
					user.setS_id(result.getInt("s_id"));//主鍵
					user.setS_username(result.getString("s_userName"));
					user.setS_uname(result.getString("s_uname"));
					user.setS_email(result.getString("s_email"));
					user.setS_phone(result.getLong("s_phone"));
					user.setS_password(result.getString("s_password"));
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}					
		return user;
	}

	@Override
	public int updatUser(int id, String username, String uname, String pwd, String email, Long phone) {
		//編寫sql語句
		String sql="update s_user set s_userName=?,s_uname=?,s_password=?,s_email=?,s_phone=? where s_id=?";
		PreparedStatement  statement=util.getConnection(sql);	
		int row=0;
		//存入參數				
			try {
				if(username!=null) {
				statement.setString(1, username);
				}
				if(uname!=null) {
					statement.setString(2, uname);
					}
				if(pwd!=null) {
					statement.setString(3, pwd);
					}
				if(email!=null) {
					statement.setString(4, email);
					}
				if(phone!=null) {
					statement.setLong(5,phone);
					}
				if(id>0) {
					statement.setInt(6, id);
					}
			 row=statement.executeUpdate();				
			} catch (SQLException e) {
				e.printStackTrace();
			}
		return row;
	}

	@Override
	public int getTotalCount() {
		String sql ="select count(*) from s_user";
		PreparedStatement statement=util.getConnection(sql);
		try {
			ResultSet resultSet=statement.executeQuery();
			if(resultSet.next()) {
				int totalCount=resultSet.getInt("count(*)");
				return totalCount;
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return 0;
	}

}
相關文章
相關標籤/搜索