A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程杰 中级黑马   /  2012-10-24 09:52  /  1770 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

不知道大家有没有发现,在ATM自动取款机取钱的时候,一般都是输入完密码直接就是操作(比如查询,取款等等),中间没有判断密码是否正确的判断。直到最后取款或查询时才提醒密码错误。一般业务逻辑都是先判断用户名,密码登陆了在执行操作。我觉的银行这套系统采用这逻辑有2点原因:
1,减少对服务器的操作,如果一上来就先判断密码就等于操作服务器的数据库一次,完了查询等操作在操作数据库。现在是判断密码,查询或取款最后操作两步放到一次操作数据库。
2,任何网络传输都存在丢包的情况,所有减少对服务器的操作有利于减少丢包的情况。
以上是我的理解,希望大家有什么观点一起讨论下。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 赞一个!

查看全部评分

6 个回复

正序浏览
先操作后判断密码和先判断密码在操作,应该是一样的吧!先操作只是先把你密码存起来,等你操作时还是要调用数据库判断的!先判断就是开始就调用数据库判断,然后再操作,再说用户表和方法表肯定不是一张表,谁先谁后没什么影响吧!
回复 使用道具 举报
我中午又去ATM机上试了试,插入卡后随便输密码是可以进入下个菜单的。不管是否是同一银行。这种业务逻辑,先操作后判断密码肯定比先判断密码在操作要有效率和减少服务器上数据库操作次数吧,就是不知道能不能用在JAVA 项目上用,比如登录,我先试试,哈哈
回复 使用道具 举报
atm义务逻辑一定会涉及多线程,没有判断密码是否正确估计是怕造成死锁吧!
回复 使用道具 举报
程杰 发表于 2012-10-24 10:05
我觉的一开始就用卡的信息访问数据库的话,既然已经操作数据库了那么密码应该也就判断了。我觉的卡号都是 ...

但实际的操作是想要判断卡的啊,那么就会连密码一起判断,密码错误的话,只能在输入密码的界面,不会让你查询的,首先ATM要读取你卡的信息,就直接将你的信息建立索引,这样不就效率更高了吗?
回复 使用道具 举报
古银平 发表于 2012-10-24 09:59
我的理解是,你插入卡后就要根据你的卡上的信息判断,就会读取数据库,将你的所有信息建立索引,输入密码错 ...

我觉的一开始就用卡的信息访问数据库的话,既然已经操作数据库了那么密码应该也就判断了。我觉的卡号都是和和密码,一起打包和继续往下的操作一起访问数据库的
回复 使用道具 举报
我的理解是,你插入卡后就要根据你的卡上的信息判断,就会读取数据库,将你的所有信息建立索引,输入密码错误就不让你访问里边的数据

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马