浏览 2734 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-07-19
参加了一个学校的商业项目,项目周期历时十五天,虽然不长但是确实学到很多东西。同时终于有机会接触到oracle的DBMS觉得他正事态牛了~~~~~~~ 这个项目是个酒店管理系统, 操作系统是WIN2003, 数据层实用的JSP+servlet, 数据库是oracle9.0.0.1. 学到太多东西需要总结,终于明白学习知识与学习能力的不同。 实际项目中是没有时间让你去慢慢摸索的,要求的是快速,高效的开发。 方法,理念也学到很多,但是技术是要总结的。 这次用的是包开发,将n个作用类存储过程放在同一个包内~~~~~~~ 包开发的好处是,将接口统一,减少了访问数据库的频率,使系统运行效率有效提高 下面是一个验证用户登陆的存储过程 --登录 procedure login(p_username in emsuser.username%type, p_password in varchar2, p_result out number) as v_password raw(128); begin p_result := -1; v_password:=emsencry(UPPER(trim(P_PASSWORD))); SELECT /*+Rule*/ COUNT(USERID) INTO p_result FROM EMSUSER WHERE UPPER(trim(USERNAME))=UPPER(trim(p_username)) AND upper(trim(PASSWORD))=upper(trim(v_password)) AND VALID=0; IF P_RESULT>0 THEN SELECT /*+Rule*/ ROLEID INTO p_result FROM EMSUSER WHERE UPPER(trim(USERNAME))=UPPER(trim(p_username)) AND UPPER(trim(PASSWORD))=upper(trim(v_password)) AND VALID=0; ELSE P_RESULT:=-1; END IF; end login; 上面用到的128位md5加密算法是在本站上找到的。 也谢谢作者。算法如下 FUNCTION EMSENCRY (input_string IN VARCHAR2)--加密算法 RETURN VARCHAR2 IS raw_input RAW (128):= UTL_RAW.cast_to_raw (input_string); decrypted_raw RAW (2048); error_in_input_buffer_length EXCEPTION; BEGIN DBMS_OBFUSCATION_TOOLKIT.md5 (input => raw_input, checksum => decrypted_raw ); RETURN LOWER (RAWTOHEX (decrypted_raw)); END; 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |