分享
 
 
 

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

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

本文用到的数据库操作功能模块源代码请参考我的文章。

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模块

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有