您的位置:首页 > 其它

简单的3T结构系统装号管理模块(未完)

2004-01-25 21:30 555 查看
本文用到的数据库操作功能模块源代码请参考我的文章。

http://www.csdn.net/Develop/read_article.asp?id=23713

package skydev.modules.accounts.data;

import java.sql.*;
import java.util.*;
import skydev.modules.data.*;
import javax.crypto.*;

public class User
extends DbObject {
public User() {
// super(new SqlServerConnectionFactory("localhost", 1433, "TheSchool", "sa",""));
super();
}

/**
* 添加一个用户,如果emailAddress已经有人注册过,则注册失败,不修改数据库,返回-1
* 否则返回新添加的UserID
* @param emailAddress
* @param password
* @param fullName
* @param address1
* @param address2
* @param city
* @param province
* @param zipCode
* @param homePhone
* @param country
* @return 添加成功返回新的UserID,否则返回-1
*/
public int create(String emailAddress,
byte[] password,
String fullName,
String address1,
String address2,
String city,
String province,
String zipCode,
String homePhone,
String country) {
Connection con = this.getConnection();
CallableStatement cs = null;
int userID = -1;

//检测当前emailAddress是否已经注册过,如果注册过则不能够再次注册
if (this.testEmailAddress(emailAddress) == false) {
return userID;
}

try {
cs = con.prepareCall(
"{call sp_Accounts_CreateUser(?,?,?,?,?,?,?,?,?,?,?)}");
cs.setString(1, emailAddress);
cs.setBytes(2, password);
cs.setString(3, fullName);
cs.setString(4, address1);
cs.setString(5, address2);
cs.setString(6, city);
cs.setString(7, province);
cs.setString(8, zipCode);
cs.setString(9, homePhone);
cs.setString(10, country);
cs.registerOutParameter(11, Types.INTEGER); //@UserID
cs.execute();
userID = cs.getInt(11);
}
catch (SQLException ex) {

}
finally {
return userID;
}
}

/**
* 更形已经存在的用户信息,如果指定UserID不存在,则不作任何修改
* @param userID
* @param emailAddress
* @param password
* @param fullName
* @param address1
* @param address2
* @param city
* @param province
* @param zipCode
* @param homePhone
* @param country
* @return
*/
public boolean update(int userID, String emailAddress, byte[] password,
String fullName, String address1, String address2,
String city, String province, String zipCode,
String homePhone, String country) {

Connection con = this.getConnection();
CallableStatement cs = null;
boolean ret = false;
try {
cs = con.prepareCall(
"{call sp_Accounts_UpdateUser(?,?,?,?,?,?,?,?,?,?,?)}");
cs.setString(1, emailAddress);
cs.setBytes(2, password);
cs.setString(3, fullName);
cs.setString(4, address1);
cs.setString(5, address2);
cs.setString(6, city);
cs.setString(7, province);
cs.setString(8, zipCode);
cs.setString(9, homePhone);
cs.setString(10, country);
cs.setInt(11, userID);
cs.execute();
ret = true;
}
catch (SQLException ex) {
ret = false;
}
finally {
return ret;
}

}

/**
* 删除指定用户ID的用户信息。如果删除异常将返回False,否则都能够删除
* @param userID
* @return
*/
public boolean delete(int userID) {
Connection con = this.getConnection();
CallableStatement cs = null;
boolean ret = false;
try {
cs = con.prepareCall("{call sp_Accounts_DeleteUser(?)}");
cs.setInt(1, userID);
cs.executeUpdate();
ret = true;

}
catch (SQLException ex) {
ret = false;
}
finally {
return ret;
}
}

/**
* 检验登录用户名称和口令
* @param emailAddress
* @param password
* @return 返回登陆的userID,如果登陆失败,返回-1;
*/
public int validateLogin(String emailAddress, byte[] password) {
Connection con = this.getConnection();
CallableStatement cs = null;
int userID = -1;
try {
cs = con.prepareCall("{?=call sp_Accounts_ValidateLogin(?,?)}");
cs.setString(2, emailAddress);
cs.setBytes(3, password);
cs.registerOutParameter(1, Types.INTEGER); //@UserID
cs.execute();
userID = cs.getInt(1);
}
catch (SQLException ex) {}
finally {
return userID;
}

}

public boolean testPassword(int userID, byte[] encPassword) {
Connection con = this.getConnection();
CallableStatement cs = null;

try {
cs = con.prepareCall("{?=call sp_Accounts_TestPassword(?,?)}");
cs.setInt(2, userID);
cs.setBytes(3, encPassword);
cs.registerOutParameter(1, Types.INTEGER); //@UserID
cs.execute();
if (cs.getInt(1) == 1) { //密码合格
return true;
}
else {
return false;
}
}
catch (SQLException ex) {
return false;
}
catch (Exception e) {
return false;
}

}

public boolean testEmailAddress(String emailAddress) {

Connection con = this.getConnection();
CallableStatement cs = null;

try {
cs = con.prepareCall("{?=call sp_Accounts_TestEmailAddress(?)}");
cs.setString(2, emailAddress);
cs.registerOutParameter(1, Types.INTEGER); //@UserID
cs.execute();
if (cs.getInt(1) == 1) { //该emailAddress可以注册
return true;
}
else {
return false;
}
}
catch (SQLException ex) {
return false;
}
catch (Exception e) {
return false;
}

}

public HashMap getUserRoles(int userID) throws SQLException {
Connection con = this.getConnection();
CallableStatement cs = null;
ResultSet rs = null;
HashMap hm = new HashMap();

try {
cs = con.prepareCall("{call sp_Accounts_GetUserRoles(?)}");
cs.setInt(1, userID);
rs = cs.executeQuery();
while (rs.next()) {
hm.put(new Integer(cs.getInt("RoleID")), cs.getString("Description"));
}
}
catch (SQLException ex) {
System.out.println("Error:HashMap getUserRoles(int userID)");
System.out.println(ex);
}
finally {
return hm;
}

}

//返回一个ArrayList来说明用户基于其角色成员关系赋予的所有许可列表
//用于管理需要
public ArrayList getEffectivePermissionList(int userID) throws SQLException {
//sp_Accounts_GetEffectivePermissionList
ArrayList al = new ArrayList();
Connection con = this.getConnection();
CallableStatement cs = null;
ResultSet rs = null;

try {
cs = con.prepareCall("{call sp_Accounts_GetEffectivePermissionList(?)}");
cs.setInt(1, userID);
rs = cs.executeQuery();

while (rs.next()) {
al.add(new Integer(rs.getInt("PermissionID")));
}
}
catch (SQLException ex) {}
finally {
return al;
}
}

public ArrayList getUserList() {
Connection con = this.getConnection();
CallableStatement cs = null;
ResultSet rs = null;
ArrayList al = new ArrayList();

try {
cs = con.prepareCall("{call sp_Accounts_GetUserList()}");
rs = cs.executeQuery();
while (rs.next()) {
al.add(new Integer(rs.getInt("UserID")));
}
}
catch (SQLException ex) {}
finally {
return al;
}
}

//基本思想:将剑所到的数据行用集合的形式保存,字段名作为Key,字段值作为KeyValue
public HashMap retrive(int userID) throws SQLException { //检索指定用户的详细信息sp_Accounts_GetUserDetails
HashMap hm = new HashMap();
Connection con = this.getConnection();
CallableStatement cs = null;
ResultSet rs = null;

try {
cs = con.prepareCall("{call sp_Accounts_GetUserDetails(?)}");
cs.setInt(1, userID);
rs = cs.executeQuery();
while (rs.next()) {
hm.put("UserID", new Integer(rs.getInt("UserID")));
hm.put("EmailAddress", rs.getString("EmailAddress"));
hm.put("FullName", rs.getString("FullName"));
hm.put("Address1", rs.getString("Address1"));
hm.put("Address2", rs.getString("Address2"));
hm.put("City", rs.getString("City"));
hm.put("Province", rs.getString("Province"));
hm.put("ZipCode", rs.getString("ZipCode"));
hm.put("HomePhone", rs.getString("homePhone"));
hm.put("Country", rs.getString("Country"));
}
}
catch (SQLException ex) {
System.out.println(ex);
}
finally {
return hm;
}
}

public HashMap retrive(String emailAddress) {
HashMap hm = new HashMap();
Connection con = this.getConnection();
CallableStatement cs = null;
ResultSet rs = null;

try {
cs = con.prepareCall("{call sp_Accounts_GetUserDetailsByEmail(?)}");
cs.setString(1, emailAddress);
rs = cs.executeQuery();

while (rs.next()) {
hm.put("UserID", new Integer(rs.getInt("UserID")));
hm.put("EmailAddress", rs.getString("EmailAddress"));
hm.put("FullName", rs.getString("FullName"));
hm.put("Address1", rs.getString("Address1"));
hm.put("Address2", rs.getString("Address2"));
hm.put("City", rs.getString("City"));
hm.put("Province", rs.getString("Province"));
hm.put("ZipCode", rs.getString("ZipCode"));
hm.put("HomePhone", rs.getString("homePhone"));
hm.put("Country", rs.getString("Country"));
}
}
catch (SQLException ex) {
System.out.println(ex);
}
finally {
return hm;
}
}

}

上面仅实现User模块
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: