package cn.service.dao;
import java.util.List;
import cn.entity.NeUser;
/*
* 用户表 DAO 接口
* */
public interface NeUserDao {
//后台登陆方法
public int loginOfAdmin(String inputAdmin,String inputPass);
//用户列表分页
public List<NeUser> getNeUserByPage(int pageIndex,
int pageSize, int levelId,String userId );
//获取数量
public int getNeUserByCount(int levelId,String userId);
//注销
public int logoutUser(String logout);
//查找用用户数据
public NeUser select(String userId);
//根据用户ID修改用户数据
public int update(String username,String tel, String phone, String email,
String postalcode,String save, String city,String borough,String address,String updateName);
//插入一条用户数据
public int insert(String userId, String password, String username, String phone, int levelId);
//ajaxUser验证
public int ajaxUser(String userId);
}
package cn.service.dao.impl;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import cn.service.dao.BaseDao;
import cn.service.dao.NeUserDao;
import cn.entity.NeUser;
/*
* 用户表 DAO 实现
* */
public class NeUserDaoImpl extends BaseDao implements NeUserDao {
Connection conn = null;//数据库连接
PreparedStatement pstmt = null;//数据库操作
ResultSet rs = null;//保存查询结果
//后台登陆方法
public int loginOfAdmin(String inputAdmin, String inputPass) {
String sql = "select count(*) from ne_user where " +
"ne_user_id=? and " +
"ne_password=? " +
"and(ne_level_id=2 or ne_level_id=3)";
conn=this.getConnection();
int count = 0;
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, inputAdmin);
pstmt.setString(2, inputPass);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}
//用户列表分页
public List<NeUser> getNeUserByPage(int pageIndex,
int pageSize, int levelId,String userId ){
int start = (pageIndex - 1) * pageSize; // 上限
int end = pageIndex * pageSize; // 下限
if(start>=1){
start++;
}
List<NeUser> list = new ArrayList<NeUser>();
NeUser item = null;
conn = this.getConnection();
if(levelId >0 && userId !=null){
String sql = "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_user where ne_level_id=? " +
" and ne_user_id like ? " +
"order by ne_user.ne_user_id ASC) A) " +
" WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, levelId);
pstmt.setString(2, "%"+userId+"%");
pstmt.setInt(3, start);
pstmt.setInt(4, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeUser(
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11),
rs.getInt(12)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(levelId>0 && userId ==null){
String sql = "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_user where ne_level_id=? " +
"order by ne_user.ne_user_id ASC) A) " +
" WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, levelId);
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeUser(
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11),
rs.getInt(12)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else if(userId!=null){
String sql = "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_user where ne_user_id like ? " +
"order by ne_user.ne_user_id ASC) A) " +
" WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%"+userId+"%");
pstmt.setInt(2, start);
pstmt.setInt(3, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeUser(
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11),
rs.getInt(12)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}else{
String sql = "SELECT * FROM ( SELECT A.*, ROWNUM RN " +
"FROM (SELECT * FROM ne_user " +
"order by ne_user.ne_user_id ASC) A) " +
" WHERE RN BETWEEN ? AND ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, start);
pstmt.setInt(2, end);
rs = pstmt.executeQuery();
while(rs.next()){
item = new NeUser(
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11),
rs.getInt(12)
);
list.add(item);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return list;
}
}
//获取数量
public int getNeUserByCount(int levelId,String userId){
int count = 0;
conn = this.getConnection();
if(levelId >0 && userId !=null){
String sql = "SELECT count(*) FROM ne_user where ne_level_id=? " +
" and ne_user_id like ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, levelId);
pstmt.setString(2, "%"+userId+"%");
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}else if(levelId>0 && userId ==null){
String sql = "SELECT count(*) FROM ne_user where ne_level_id=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, levelId);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}else if(userId!=null){
String sql = "SELECT count(*) FROM ne_user where ne_user_id like ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "%"+userId+"%");
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}else{
String sql = "SELECT count(*) FROM ne_user";
try {
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}
}
//注销
public int logoutUser(String logout){
String sql = "update ne_user " +
" set ne_level_id = 4 " +
" where ne_user_id = ?";
return this.executeUpdate(sql, new Object[]{
logout
}
);
}
//查找用用户数据
public NeUser select(String userId){
String sql = "select ne_user_id, ne_password, ne_username, ne_tel, ne_phone, ne_email," +
" ne_postalcode, ne_save, ne_city, ne_borough, ne_address," +
" ne_level_id from ne_user where ne_user_id=?";
NeUser item = null;
conn = this.getConnection();
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, userId);
rs = pstmt.executeQuery();
if(rs.next()){
item = new NeUser(
rs.getString(1),
rs.getString(2),
rs.getString(3),
rs.getString(4),
rs.getString(5),
rs.getString(6),
rs.getString(7),
rs.getString(8),
rs.getString(9),
rs.getString(10),
rs.getString(11),
rs.getInt(12)
);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return item;
}
//根据用户ID修改用户数据
public int update(String username,String tel, String phone, String email,
String postalcode,String save, String city,String borough,String address,String updateName){
String sql ="update ne_user " +
" set " +
" ne_username = ?, " +
" ne_tel = ?, " +
" ne_phone = ?, " +
" ne_email = ?, " +
" ne_postalcode = ?, " +
" ne_save = ?, " +
" ne_city = ?, " +
" ne_borough = ?, " +
" ne_address = ? " +
" where ne_user_id = ?";
return this.executeUpdate(sql, new Object[]{
username,
tel,
phone,
email,
postalcode,
save,
city,
borough,
address,
updateName
}
);
}
//插入一条用户数据
public int insert(String userId, String password, String username, String phone, int levelId){
String sql = "insert into ne_user " +
" (ne_user_id, ne_password, ne_username, ne_tel, " +
" ne_phone, ne_email, ne_postalcode, " +
" ne_save, ne_city, ne_borough, " +
" ne_address, ne_level_id) " +
"values " +
" (?, ?, ?, null, " +
" ?, null, null, null, null, null, null, ?)";
return this.executeUpdate(sql, new Object[]{
userId,
password,
username,
phone,
levelId
}
);
}
//ajaxUser验证
public int ajaxUser(String userId){
String sql = " select count(*) from ne_user where NE_USER_ID=? ";
conn=this.getConnection();
int count = 0;
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, userId);
rs = pstmt.executeQuery();
if(rs.next()){
count = rs.getInt(1);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
this.closeAll(conn, pstmt, rs);
}
return count;
}
}