📄 userdbmanager.java
字号:
package com.ciash.bms.db.manager.user.impl;
import com.ciash.common.db.bean.MySqlDBSource;
import com.ciash.bms.config.AppSetting;
import java.sql.ResultSet;
import java.sql.*;
import java.util.HashMap;
import com.ciash.common.db.bean.Parameter;
import java.util.Collection;
import java.util.LinkedList;
import java.util.Iterator;
import com.ciash.bms.entity.User;
import com.ciash.common.db.bean.ConnectionStringBean;
import com.ciash.bms.db.manager.user.UserDBFindManager;
import com.ciash.bms.db.manager.user.UserDBEditManager;
/**
* <p>Title: BMS</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2009</p>
* <p>Company: Cigarette Ash Inc.</p>
* @author Cigarette Ash
* @version 1.0
*/
public class UserDBManager
implements UserDBFindManager, UserDBEditManager {
private MySqlDBSource dbSource;
//数据源实例
// ---------------------------------------------------------------------
//插入变量块
private static String insert = "INSERT INTO [user](" +
"user_id, popedom, user_password, user_name," +
"user_email, user_introduce, user_qq, user_msn" +
") VALUES(" +
"@id, @pop, @psw, @name, @email, " +
"@intr, @qq, @msn" +
")";
// --------------------------------------------------------------------
//变量块
private Parameter id_pa = new Parameter("id", null);
private Parameter pop_pa = new Parameter("pop", null);
private Parameter psw_pa = new Parameter("psw", null);
private Parameter name_pa = new Parameter("name", null);
private Parameter email_pa = new Parameter("email", null);
private Parameter intr_pa = new Parameter("intr", null);
private Parameter qq_pa = new Parameter("qq", null);
private Parameter msn_pa = new Parameter("msn", null);
// --------------------------------------------------------------------
// 构造器
public UserDBManager(ConnectionStringBean connBean) {
dbSource = MySqlDBSource.getInstance(connBean);
}
// --------------------------------------------------------------------
// 实现自 接口 UserEditManager
// 包含方法
// void add(User user);
// void delete(User user);
// void update(User user);
// boolean updateId(String newId, String oldId);
/**
* 添加用户
*
* @param user 用户
*/
public void add(User user) {
if (!isExist(user)) {
//设置插入语句
dbSource.setInsertCommand(insert);
//设置变量
//设置id变量
id_pa.setValue(user.getUserId());
dbSource.addInsertParameter(id_pa);
//设置密码变量
psw_pa.setValue(user.getUserPassword());
dbSource.addInsertParameter(psw_pa);
//设置权限变量
pop_pa.setValue(user.getPopedom());
dbSource.addInsertParameter(pop_pa);
//设置名字变量
name_pa.setValue(user.getUserName());
dbSource.addInsertParameter(name_pa);
//设置电子邮箱变量
email_pa.setValue(user.getUserEmail());
dbSource.addInsertParameter(email_pa);
//设置用户介绍变量
intr_pa.setValue(user.getUserIntroduce());
dbSource.addInsertParameter(intr_pa);
//设置QQ/ICQ变量
qq_pa.setValue(user.getUserQQ());
dbSource.addInsertParameter(qq_pa);
//设置MSN变量
msn_pa.setValue(user.getUserMsn());
dbSource.addInsertParameter(msn_pa);
//执行插入
dbSource.insert();
}
}
/**
* 删除指定用户
*
* @param user 指定用户
*/
public void delete(User user) {
deleteById(user.getUserId());
}
/**
* 通过用户id删除用户
*
* @param id 用户id
*/
public void deleteById(String id) {
dbSource.setDeleteCommand("DELETE FROM [user] WHERE user_id = @id");
id_pa.setValue(id);
dbSource.addDeleteParameter(id_pa);
dbSource.delete();
}
/**
* 更新指定用户信息
*
* @param user 指定用户信息
*/
public void update(User user) {
delete(user);
add(user);
}
// --------------------------------------------------------------------------------------------
// 实现自 接口 UserFindManager
// 包含方法
// boolean isExist(User user);
// Collection findByName(String name);
// User findById(String id);
/**
* 查找所有同名用户
*
* @param name 查找用户
* @return 返回查找到的用户集合
*/
public Collection findByName(String name) {
//连接数据库版本代码,以下将使用非数据库版本,缓存读取方式
try {
LinkedList resultList = new LinkedList();
dbSource.setSelectCommand(
"SELECT * FROM [user] WHERE user_name = @name");
name_pa.setValue(name);
dbSource.addSelectParameter(name_pa);
ResultSet set = dbSource.select();
while (set.next()) {
resultList.add(User.toUser(set));
}
return resultList;
}
catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
/**
* 通过id查找用户
*
* @param id 用户id
* @return 用户对象
*/
public User findById(String id) {
try {
dbSource.setSelectCommand("SELECT * FROM [user] WHERE user_id = @id");
id_pa.setValue(id);
dbSource.addSelectParameter(id_pa);
ResultSet result = dbSource.select();
if (result.next()) {
return User.toUser(result);
}
else {
return null;
}
}
catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
/**
* 获得所有对象集合
*
* @return 所有对象集合
*/
public Collection findAll() {
try {
LinkedList resultList = new LinkedList();
dbSource.setSelectCommand("SELECT * FROM [user]");
ResultSet result = dbSource.select();
while (result.next()) {
User user = User.toUser(result);
resultList.add(user); //建立实体映射
}
return resultList;
}
catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
/**
* 测试用户是否存在
*
* @param id 要测试的用户id
* @return true 用户存在
*/
public boolean isExist(String id) {
dbSource.setSelectCommand("SELECT * FROM [user] WHERE user_id = @id");
id_pa.setValue(id);
dbSource.addSelectParameter(id_pa);
ResultSet result = dbSource.select();
try {
if (result.next()) {
return true;
}
return false;
}
catch (SQLException ex) {
ex.printStackTrace();
return false;
}
}
/**
* 测试用户是否存在
*
* @param user 要测试的用户
* @return true 用户存在
*/
public boolean isExist(User user) {
return isExist(user.getUserId());
}
public void closeDBSource() {
this.dbSource.close();
}
// --------------------------------------------------------------------
// 唯一获得实例的静态方法
private static UserDBManager instance = new UserDBManager(AppSetting.connectionStringBean);
/**
* 获得用户管理器的唯一实例
*
* @return 用户管理器的实例
*/
protected static UserDBManager getInstance() {
//暂时进行隐藏
return instance;
}
// --------------------------------------------------------------------------------------------
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -