简单的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模块
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模块
相关文章推荐
- FFmpeg来源简单分析:结构会员管理系统-AVClass
- 关于其它模块的设计,有非常多须要自己去构建和完毕,在这里就简单地举几个样例来看看其它模块的设计。我们要做的就是有更改password模块,客户选择模块和关于本软件模块。更改password模块用来更改管理员的password,客户选择对话框模块用来选择已加入的客户,关于本软件模块用来说明客户管理系统的一些必要信息和制作人的信息。
- 一个简单的本地化资源管理系统-表结构
- PHP实现简单的学生信息管理系统
- 图书管理系统【用户、购买、订单模块、添加权限】
- javaweb+SSH实现简单的权限管理系统
- 简单的学生管理系统
- 基于RFC6265 (HTTP状态管理协议)实现简单的登录系统
- 用四层结构方法开发信息管理系统
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->新增模块管理界面导出功能(可按条件导出)
- Log4j日志管理系统简单使用说明
- 使用python实现一个简单的学生信息管理系统
- 简单的学生信息管理系统
- FFmpeg源代码简单分析:结构体成员管理系统-AVOption
- Java语言实现简单FTP软件 辅助功能模块FTP站点管理实现(12)
- 博客系统-模块结构
- Python实现简单的用户管理系统
- Java写一个简单学生管理系统
- vueleopard--一个简单的'vue iview webpack'管理系统
- 在线培训系统设计---课程管理模块(2)