⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 userdbmanager.java

📁 此文档针对开发人员和测试人员。第二章对软件进行了全面的描述。第三章对接口进行了分析。第四章对软件实现的功能进行概述。第五章对软件后续开发实现提出的要求。第六章提出其他一些在软件开发过程中需要注意的问题
💻 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 + -