- 浏览: 140115 次
- 性别:
- 来自: 深圳
最新评论
-
wzk2111:
代码 可用,楼主的思路可以参考
javascript加密java解密 -
Imini123:
[align=center][color=red][/colo ...
freemarker实现通用分页,首页静态化,通用select,通用文章显示 -
igting:
js对+,@符号的加密应该有问题,java解密不对。
javascript加密java解密 -
Seanman:
初学freemarker,源码不全,不知道怎么用
freemarker实现通用分页,首页静态化,通用select,通用文章显示 -
无敌洋葱头:
目前这个只能对0-9 A-Z a-z加密,而且js还有问题。c ...
javascript加密java解密
public void addFlagBit(Long flagBit) { this.flagBit |= flagBit.longValue(); } public void removeFlagBit(long flagBit) { this.flagBit &= flagBit ^ Long.MAX_VALUE; }
<update id="addMemberFlagBit" parameterType="map"> update member set flag_bit = (flag_bit + ${flagBit}) - bitand(flag_bit, ${flagBit}) where id = #{memberId} </update> <update id="clearMemberFlagBit" parameterType="map"> update member set flag_bit = bitand(flag_bit, ${flagBit}) where id = #{memberId} </update>
package com.xxx.member.common.constant; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import com.xxxpiao.common.entity.enumerated.Game; import com.xxxpiao.common.entity.enumerated.OperType; /** * 如果1个long flagBit字段不够,再增加多1/2个flagBit字段, * 64bit+64bit+64bit = 192bit,可以搞定大部分相似变化,比单一字段只表示有限单一意义的利用率高很多。 * * 这里常量和features内里由**和**来设计/增加业务,两人要管理和搭配好/分派好/互动沟通好vipuser.flagBit, * member.flagBit负责单个帐号相关的重要/基础/安全性/系统性功能/用户指定前台配置,vipuser.flagBit负责同一自然人多个帐号的处理和促销/活动功能 * vipuser.flagBit一些已过期活动占用的flagBit也可回收重复利用到别的功能和活动 * * VipUserFlagBitConstant.java 中有更多说明 * {@see com.xxx.vip.common.constant.flagbit.VipUserFlagBitConstant} * * 参考资料: * <ul> * <li>http://wiki.inzwc.com/wiki/index.php/ArchAndBiz 能否通过标识/精致数据急剧滤掉大部分IO次数和高消耗</li> * </ul> * * @author ** * */ public class MemberFlagBitConstant { // 是否加密身份证号 public static long encryptCertNo = 1; // 是否加密电话号码 public static long encryptPhone = 1 << 2; // 是否加密email public static long encryptEmail = 1 << 3; // 是否加密im通讯工具 public static long encryptIm = 1 << 4; // 是否开通手机号登录服务 public static long phoneLoginOpen = 1 << 5; /** 是否开通投注邮件通知 **/ public static long betEmailNotifyOpen = 1 << 6; /** * 已通过短信下发/客服回拨方式验证手机号是真实的 */ public static long confirmed_mobile = 1 << 7; /** * 已通过让用户上传拍照身份证方式确认身份证是真实的 */ public static long confirmed_certNo = 1 << 8; /** * 此帐户已被发现存在多个根据手机号/身份证号等确定的东西或蛛丝马迹发现有关联帐号, * 进一步信息需从vip系统或安全系统中获取 */ public static long haveMultiAccountFound = 1 << 9; /** 标识有信用卡充值 **/ public static long creditcardCharge = 1 << 10; /**是否启用了投注凭证*/ public static long enable_bet_vouch = 1 << 11; /** * 是否是北京单场大户1。vip = very important person * * 请通过IDE的索引查找到相应的规则 */ public static long gameBD_vip_1 = 1 << 12; public static long gameJZ_vip_1 = 1 << 13; public static long gameDCSF_vip_1 = 1 << 14; /*** * 新会员是否已经充值 */ public static long newMemberIsCharge = 1 << 15; /** * 验证邮箱 */ public static long validateMemberEmail=1 << 16; /** * 是否绑定手机短信投注系统(smsbet) */ public static long bindSmsbetSystem = 1 << 17; /** * 类型 */ private Long index; /** * 类型名称 */ private String name; public MemberFlagBitConstant(Long index, String name) { this.index = index; this.name = name; } /*************以下可配置在admin后台管理配置功能**************/ public final static MemberFlagBitConstant VALIDATE_MEMBER_EMAIL = new MemberFlagBitConstant(validateMemberEmail,"验证邮箱"); public final static MemberFlagBitConstant BIND_SMS_BET_SYSTEM = new MemberFlagBitConstant(bindSmsbetSystem,"是否绑定手机短信投注系统"); /** 功能对应的位标记值 **/ public static Map<Long,MemberFlagBitConstant> memberFlagBitConfigMap = new HashMap<Long,MemberFlagBitConstant>(); static{ memberFlagBitConfigMap.put(VALIDATE_MEMBER_EMAIL.getIndex(), VALIDATE_MEMBER_EMAIL); memberFlagBitConfigMap.put(BIND_SMS_BET_SYSTEM.getIndex(), BIND_SMS_BET_SYSTEM); } /** * 某会员配置的功能 * @return */ public static List<MemberFlagBitConstant> getMemberFlagBitByFlagBit(long optionConstant){ List<MemberFlagBitConstant> flagbits = new ArrayList<MemberFlagBitConstant>(); for(Long key:memberFlagBitConfigMap.keySet()){ if(MemberFlagBitConstant.isExistFlagBit(key, optionConstant)){ flagbits.add(memberFlagBitConfigMap.get(key)); } } return flagbits; } public static List<MemberFlagBitConstant> getAll(){ List<MemberFlagBitConstant> list = new ArrayList<MemberFlagBitConstant>(); for(Long key:memberFlagBitConfigMap.keySet()){ list.add(memberFlagBitConfigMap.get(key)); } return list; } public static boolean isEncryptCertNo(long optionConstant) { return (optionConstant & encryptCertNo) > 0; } public static boolean isEncryptPhone(long optionConstant) { return (optionConstant & encryptPhone) > 0; } public static boolean isEncryptEmail(long optionConstant) { return (optionConstant & encryptEmail) > 0; } public static boolean isEncryptIm(long optionConstant) { return (optionConstant & encryptIm) > 0; } public static boolean isPhoneLoginOpen(long optionConstant) { return (optionConstant & phoneLoginOpen) > 0; } public static boolean isBetEmailNotifyOpen(long optionConstant) { return (optionConstant & betEmailNotifyOpen) > 0; } public static boolean isCreditcardCharge(long optionConstant) { return (optionConstant & creditcardCharge) > 0; } public static boolean isEnableBetVouch(long optionConstant) { return (optionConstant & enable_bet_vouch) > 0; } public static boolean isGameBD_vip_1(long optionConstant) { return (optionConstant & gameBD_vip_1) > 0; } public static boolean isBind_Sms_Bet_System(long optionConstant) { return (optionConstant & bindSmsbetSystem) > 0; } public static boolean isGameJZ_vip_1(long optionConstant) { return (optionConstant & gameJZ_vip_1) > 0; } public static boolean isGameDCSF_vip_1(long optionConstant) { return (optionConstant & gameDCSF_vip_1) > 0; } public static long getGame_vip_flag(long optionConstant) { if ((optionConstant & gameBD_vip_1 ) > 0 ) { return gameBD_vip_1; }else if ((optionConstant& gameJZ_vip_1) > 0) { return gameJZ_vip_1; }else if ((optionConstant& gameDCSF_vip_1) > 0) { return gameDCSF_vip_1; } return 0; } public static boolean isNewMemberIsCharge(long optionConstant) { return (optionConstant & newMemberIsCharge) > 0; } public static boolean isValidateMemberEmail(long optionConstant){ return (optionConstant & validateMemberEmail) > 0; } /** * 验证 optionFlagbit操作标识是否已经存在memberFlagbit 中 * @param optionConstant * @return */ public static boolean isExistFlagBit(long optionFlagbit,long memberFlagbit) { return (optionFlagbit & memberFlagbit )> 0; } /** * 获取addFlagbit写日志记录map * @return */ public static Map<Long, OperType> getAddFlagBitWithSupportOperLogMap(){ Map<Long, OperType> supportLogMap = new HashMap<>(); supportLogMap.put(enable_bet_vouch, OperType.BET_VOUCH_OPEN); supportLogMap.put(betEmailNotifyOpen, OperType.OPOEN_BET_EMAIL_NOTIFY); supportLogMap.put(validateMemberEmail, OperType.EMAIL_VALID); return supportLogMap; } /** * 获取removeFlagbit写日志记录map * @return */ public static Map<Long, OperType> getRemoveFlagBitWithSupportOperLogMap(){ Map<Long, OperType> supportLogMap = new HashMap<>(); supportLogMap.put(enable_bet_vouch, OperType.BET_VOUCH_CLOSE); supportLogMap.put(betEmailNotifyOpen, OperType.CLOSE_BET_EMAIL_NOTIFY); supportLogMap.put(validateMemberEmail, OperType.CANCEL_EMAIL_VALID); return supportLogMap; } /** * vip延迟上传flag对应game的map * @return */ public static Map<Long, Game> getGameVipFlagAndParentGameMap(){ Map<Long, Game> flagGameMap = new HashMap<>(); flagGameMap.put(gameBD_vip_1, Game.JJ_BJDC); flagGameMap.put(gameDCSF_vip_1, Game.JJ_DCSF); flagGameMap.put(gameJZ_vip_1, Game.JJ_ZC); return flagGameMap; } public Long getIndex() { return index; } public void setIndex(Long index) { this.index = index; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
package com.xxxpiao.common.entity.member; import java.util.Calendar; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Enumerated; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Transient; import org.hibernate.annotations.Type; import com.xxx.dao.domain.ExtensionField; import com.xxx.dao.domain.HasLoadedAttach; import com.xxx.dao.util.HasLoadedAttachUtil; import com.xxx.member.common.constant.MemberHasLoadedAttachBit; import com.xxxpiao.common.entity.BaseEntity; import com.xxxpiao.common.entity.enumerated.BindBankType; import com.xxxpiao.common.entity.enumerated.CertType; import com.xxxpiao.common.entity.enumerated.MemberStatus; import com.xxxpiao.common.entity.enumerated.SellClient; import com.xxxpiao.common.entity.enumerated.Sex; import com.xxxpiao.common.entity.enumerated.ThirdType; import com.xxxpiao.common.service.vo.RegisterType; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.parser.Feature; import com.alibaba.fastjson.serializer.SerializerFeature; /** * 网站客户 * * @author yaya * */ @Entity @org.hibernate.annotations.Entity(dynamicUpdate = true) @SequenceGenerator(name = "SEQ_MEMBER", sequenceName = "SEQ_MEMBER", allocationSize = 1, initialValue = 1) public class Member extends BaseEntity implements HasLoadedAttach, ExtensionField { private static final long serialVersionUID = 6014921986862506261L; @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_MEMBER") private Long id; @Column(nullable = false, unique = true) private String account; /** 昵称(屏蔽手机号,默认跟帐户名相同) */ @Column(nullable = false) private String nickname; @Column(nullable = false) private String password; /** 联系电话 */ @Column(name = "phone") private String phone; /** 电邮地址 */ private String email; /** 用户状态 (0-正常,1-关闭) */ @Enumerated @Column(nullable = false) private MemberStatus status = MemberStatus.ENABLE; /** 注册时间 */ @Column(nullable = false) private Calendar registerTime; /** 来源客户端 */ @Enumerated @Column(nullable = false) private SellClient sellClient; /** 市场渠道 */ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "sell_channel", nullable = false) private MemberMarketChannel sellChannel; /** 证件类型 (0-身份证,1-军官证 ,2-护照) */ @Enumerated private CertType certType; /** 证件号码 */ private String certNo; /** */ private Calendar lastLoginTime; /** */ private String name; /** */ private Calendar birthday; /** 性别 (0-男,1-女) */ @Enumerated private Sex sex; /** 用户所在地区 */ private Long areaId; /** IM */ private String im; /** 提款银行ID */ private Long bankId; /** 开户行全称 */ private String bankName; /** 银行帐号 */ private String bankCardNo; /** 消费级别 */ private int userLevel = 0; /** 头衔 */ private String title; /** 推荐人 */ private String recoMember; /** 用户资料完整度(0-快速注册,1-完整注册) */ @Column(name = "INFO_FULL_STATUS") private int infoFullStatus; @Type(type = "thirdType") private ThirdType thirdType = ThirdType.LOCAL; /** 用户在第三方系统的标识,如在支付宝的标识,一般会在共享注册时设置 */ private String thirdId; /** 用户是本站注册的,但通过第三方绑定登陆的,有这个信息*/ private MemberThirdLogin thirdLogin; /** 注册类型,暂时不保存到数据库中 */ @Transient private RegisterType registerType; /** 用户绑定类型 */ @Type(type = "bindBankType") private BindBankType bindBankType = BindBankType.NORMAL; /** 用户绑定银行卡信息 **/ private String bindBankInfo; /** 会员信息更新时间 */ private Calendar updateTime = Calendar.getInstance(); /** 用户提款手机号码绑定 */ private String getMoneyPhone; /** * 出生月日 */ private String birthdayMmdd; @Transient private long attachBit; private Long flagBit = 0L; private Integer flagVersion = 0; private JSONObject features = new JSONObject(); private Integer featuresVersion = 0; public Member() { } public Member(Long id) { this.id = id; } /** * 快速注册用户构造方法 * * @param account * @param password * @param sellClient * @param sellChannel */ public Member(String account, String password, SellClient sellClient, MemberMarketChannel sellChannel) { this.account = account; this.nickname = account; this.password = password; this.registerTime = Calendar.getInstance(); this.sellClient = sellClient; this.sellChannel = sellChannel; } public Member(String account, String password) { this.account = account; this.password = password; } @Override public Long getId() { return id; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public MemberStatus getStatus() { return status; } public void setStatus(MemberStatus status) { this.status = status; } public Calendar getRegisterTime() { return registerTime; } public void setRegisterTime(Calendar registerTime) { this.registerTime = registerTime; } public SellClient getSellClient() { return sellClient; } public void setSellClient(SellClient sellClient) { this.sellClient = sellClient; } public MemberMarketChannel getSellChannel() { return sellChannel; } public void setSellChannel(MemberMarketChannel sellChannel) { this.sellChannel = sellChannel; addAttachFlag(MemberHasLoadedAttachBit.sellChannel); } public void setSellChannelId(Long sellChannel) { this.sellChannel = new MemberMarketChannel(sellChannel); removeAttachFlag(MemberHasLoadedAttachBit.sellChannel); } public CertType getCertType() { return certType; } public void setCertType(CertType certType) { this.certType = certType; } public String getCertNo() { return certNo; } public void setCertNo(String certNo) { this.certNo = certNo; } public Calendar getLastLoginTime() { return lastLoginTime; } public void setLastLoginTime(Calendar lastLoginTime) { this.lastLoginTime = lastLoginTime; } public String getName() { return name; } public void setName(String name) { if(name!=null){ this.name = name.trim(); }else{ this.name = null; } } public Calendar getBirthday() { return birthday; } public void setBirthday(Calendar birthday) { this.birthday = birthday; } public Sex getSex() { return sex; } public void setSex(Sex sex) { this.sex = sex; } public Long getAreaId() { return areaId; } public void setAreaId(Long areaId) { this.areaId = areaId; } public String getIm() { return im; } public void setIm(String im) { this.im = im; } public Long getBankId() { return bankId; } public void setBankId(Long bankId) { this.bankId = bankId; } public String getBankName() { return bankName; } public void setBankName(String bankName) { this.bankName = bankName; } public String getBankCardNo() { return bankCardNo; } public void setBankCardNo(String bankCardNo) { this.bankCardNo = bankCardNo; } public int getUserLevel() { return userLevel; } public void setUserLevel(int userLevel) { this.userLevel = userLevel; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getRecoMember() { return recoMember; } public void setRecoMember(String recoMember) { this.recoMember = recoMember; } public int getInfoFullStatus() { if(this.name!=null && this.name.length()>0 && this.phone!=null && this.phone.length()>0 && this.certNo!=null && this.certNo.length()>0){ return 1;//完善资料 } return infoFullStatus; } public void setInfoFullStatus(int infoFullStatus) { this.infoFullStatus = infoFullStatus; } public String getThirdId() { return thirdId; } public void setThirdId(String thirdId) { this.thirdId = thirdId; } public MemberThirdLogin getThirdLogin() { return thirdLogin; } public void setThirdLogin(MemberThirdLogin thirdLogin) { this.thirdLogin = thirdLogin; this.addAttachFlag(MemberHasLoadedAttachBit.thirdLogin); } public void setId(Long id) { this.id = id; } public ThirdType getThirdType() { return thirdType; } public void setThirdType(ThirdType thirdType) { this.thirdType = thirdType; } public RegisterType getRegisterType() { return registerType; } public void setRegisterType(RegisterType registerType) { this.registerType = registerType; } public BindBankType getBindBankType() { return bindBankType; } public void setBindBankType(BindBankType bindBankType) { this.bindBankType = bindBankType; } public String getBindBankInfo() { return bindBankInfo; } public void setBindBankInfo(String bindBankInfo) { this.bindBankInfo = bindBankInfo; } public Calendar getUpdateTime() { return updateTime; } public void setUpdateTime(Calendar updateTime) { this.updateTime = updateTime; } public String getGetMoneyPhone() { return getMoneyPhone; } public void setGetMoneyPhone(String getMoneyPhone) { this.getMoneyPhone = getMoneyPhone; } @Override public boolean hasAttachLoaded(long bitForPart) { return HasLoadedAttachUtil.hasAttachLoaded(attachBit, bitForPart); } private void removeAttachFlag(long flagBit) { this.attachBit &= flagBit ^ Long.MAX_VALUE; } private void addAttachFlag(long flagBit) { this.attachBit |= flagBit; } @Override public long getFlagBit() { return this.flagBit == null ? 0 : flagBit; } @Override public int getFlagVersion() { return this.flagVersion == null ? 0 : flagVersion; } @Override public String getFeatures() { return JSON.toJSONString(features,SerializerFeature.UseISO8601DateFormat); } @Override public int getFeaturesVersion() { return this.featuresVersion == null ? 0 : featuresVersion; } @Override public void setupFeature(String columnName, String value) { features.put(columnName, value); } @Override public void setupFeature(String columnName, Object value) { features.put(columnName, value); } @Override public void removeFeature(String columnName) { features.remove(columnName); } @Override public String getFeature(String columnName) { return features.getString(columnName); } @Override public <T> T getFeature(String columnName, Class<T> clz) { return features.getObject(columnName, clz); } public void addFlagBit(Long flagBit) { this.flagBit |= flagBit.longValue(); } public void removeFlagBit(long flagBit) { this.flagBit &= flagBit ^ Long.MAX_VALUE; } public void setFlagBit(Long flagBit) { this.flagBit = flagBit == null ? 0 : flagBit; } public void setFeatures(String features) { this.features = JSONObject.parseObject(features,Feature.AllowISO8601DateFormat); } public void setFlagVersion(Integer flagVersion) { this.flagVersion = flagVersion == null ? 0 : flagVersion; } public void setFeaturesVersion(Integer featuresVersion) { this.featuresVersion = featuresVersion == null ? 0 : featuresVersion; } public String getBirthdayMmdd() { return birthdayMmdd; } public void setBirthdayMmdd(String birthdayMmdd) { this.birthdayMmdd = birthdayMmdd; } }
发表评论
文章已被作者锁定,不允许评论。
-
ES聚合查询大全
2020-11-18 16:16 266package com.xxx.es; import ... -
spring中使用logback日志组件替换log4j
2015-04-29 15:27 944logback比log4j的强大之处,请到logback的主页 ... -
java加密解密
2015-02-10 15:05 1730package com.neo.xnol.weixin.u ... -
eclipse常用配置
2015-01-05 11:23 1241Eclipse常用配置介绍 以 ... -
分布式事务-幂等
2014-12-30 14:04 683引用 http://www.360doc.com/conten ... -
实现基于nginx的tomcat负载均衡和集群配置
2014-12-26 16:22 1114今天看到"基于apache的tomcat负载均衡和集 ... -
java导出Excel
2014-10-14 17:00 1103package com.xxxpiao.datacompa ... -
<base target="_self"/>标签的巧妙用法
2014-10-10 15:34 746最近项目中一个小问题卡了我不少时间。我遇到的问题是:在项目的弹 ... -
分布式一致性-幂等
2014-09-28 14:53 1098关于分布式系统的数据 ... -
ModelResult-查询封装类
2014-09-25 09:14 3547package com.xxx.appmodel.doma ... -
LDAP工具类
2014-09-05 10:12 884package com.xxxpiao.common.ut ... -
通过JNDI访问LDAP目录服务
2014-09-04 17:46 3105package com.sina.test; imp ... -
java获取两个日期之间的年月(yyyy-MM)和年月日(yyyy-MM-dd)
2014-07-29 14:42 1842public List<String> pro ... -
maven-.m2
2014-07-28 14:48 797<settings> <!--< ... -
maven实战
2014-07-07 10:04 755<settings> <!--< ... -
验证敏感词汇
2014-07-04 10:01 958package com.xxxpiao.core.memb ... -
Jms实战
2014-07-02 09:27 695<?xml version="1.0&qu ... -
互联网数功能位,表扩展(flagBit,feature)
2014-06-26 17:39 813<select id="queryRegT ... -
线程运用-抽象类使用
2014-06-26 17:34 857package com.xxx.betcart.serve ... -
JDBC分批更新
2014-06-26 17:11 621@Override public boolean ba ...
相关推荐
Oracle 32位客户端是专为在32位操作系统上运行而设计的Oracle数据库连接工具。这个客户端提供了与Oracle数据库服务器交互所需的各种组件,包括网络协议处理、SQL语句解析和执行、数据类型转换等功能。Oracle 32位...
### Linux x86 32位操作系统快速安装Oracle数据库操作指南 #### 一、概述 本文档旨在指导用户如何在Linux x86 32位操作系统上快速安装Oracle Database 10g。它包含了从系统准备到软件安装的全过程指南,并提供了...
Oracle 12.2数据库是Oracle公司发布的一个重要的企业级数据库管理系统版本,专为64位操作系统设计。这个版本在前一版本的基础上进行了大量的优化和增强,提供了更高效、更安全、更灵活的数据存储和管理解决方案。...
在这个场景中,我们关注的是"Oracle客户端64位",这通常意味着它是为64位操作系统设计的,能够更好地利用64位系统的内存资源。 Oracle客户端主要包括以下组件: 1. **Oracle Net Services**:这是Oracle通信协议的...
### 32位Oracle 11g安装在64位操作系统上的步骤与注意事项 #### 一、背景介绍 Oracle数据库是全球领先的数据库管理系统之一,在企业级应用中占据着举足轻重的地位。随着计算机硬件技术的发展,64位操作系统的普及...
Oracle 11g 32位客户端是一款专为在32位操作系统上运行Oracle数据库而设计的工具,它提供了一整套与数据库交互所需的组件和服务。这个完整的版本包含了所有必要的组件,使得用户可以在本地计算机上连接到远程Oracle...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,尤其在Linux操作系统上有着广泛的应用。在Linux环境下安装Oracle 11g,需要一系列特定的软件包来支持其运行。"oracle所需的32位64位包"这个压缩包很...
Oracle 32位驱动是专为32位操作系统设计的数据库连接组件,它允许应用程序与Oracle数据库进行交互。尽管现在64位操作系统已相当普遍,但依然有些旧版的应用程序或者依赖32位驱动的软件需要这样的驱动来完成数据访问...
在64位操作系统上,你需要64位版本的oci.dll,而在32位操作系统上,则需要32位版本。这两个版本的oci.dll在内部结构和功能上基本相同,但因为架构不同,不能在不兼容的操作系统上互换使用。因此,根据你的应用程序和...
这两个版本适用于不同操作系统的计算机,32位客户端适用于32位操作系统,而64位客户端适用于64位操作系统。"readme.txt"文件通常包含安装和使用说明。 Oracle Instant Client是Oracle提供的一种轻量级客户端,它不...
本文旨在提供一个详尽的指南,帮助用户将现有的Oracle 9.2.0.1版数据库(运行在32位操作系统上)升级至Oracle 10.2.0.1版数据库(运行在64位操作系统上)。此过程不仅涉及技术层面的具体步骤,还需要考虑到数据迁移...
Oracle 64位客户端与SDK下载是针对那些需要在64位操作系统上与Oracle数据库进行交互的开发者和管理员的重要资源。这两个组件对于高效且稳定地连接到Oracle数据库至关重要。以下是对这些组件的详细说明: 1. **...
借助32位 Oracle 再进行一些配置,可以实现在64位系统使用PLSQL操作Oracle数据库,详细操作可以参阅我的博客:64位系统中PLSQL的安装
Oracle11g客户端32位是Oracle公司推出的数据库管理系统的客户端版本,专为32位操作系统设计。这个轻量级的客户端尽管只有70多MB,但仍然包含了完整版Oracle客户端的许多核心功能,能够满足大部分数据库管理和开发的...
Oracle 32位客户端是专为在Windows 64位操作系统上运行的32位应用程序设计的数据库连接工具。在64位系统中,有些开发工具如PL/SQL Developer(简称PLSQL)和Navicat等数据库管理工具,可能需要32位版本的Oracle...
- **64位客户端**: 虽然可以在64位操作系统上运行,但可能不兼容一些32位的应用程序或系统组件。 ### 安装配置流程 #### 准备工作 1. **确认操作系统版本**: 确保你的操作系统支持所需的Oracle客户端版本。 2. **...
在IT领域,尤其是在数据库管理与操作系统配置方面,安装与配置Oracle数据库是一项技术含量较高的工作,尤其在64位Linux环境下进行。以下是从标题、描述、标签以及部分内容中提炼出的关键知识点,围绕“Linux 64位...
32位oci.dll适用于32位操作系统和32位应用程序,而64位oci.dll则对应64位操作系统和64位应用程序。确保使用正确的位宽版本是非常重要的,因为不匹配的位宽可能会导致应用程序无法启动或运行时错误。 描述中提到了...
Oracle 32位客户端是专为那些在本地计算机上没有安装完整Oracle数据库,但需要通过PL/SQL Developer等工具连接到远程Oracle服务器的用户设计的。这个轻量级的客户端包含了一系列必要的组件,使得用户可以在不占用...