zoukankan      html  css  js  c++  java
  • atitit.数据验证--db数据库数据验证约束

    atitit.数据验证--db数据库数据验证约束

     

     

    1. 为了加强账户数据金额的安全性,需要增加验证字段。。1

    2. 创建帐户1

    3. 更改账户2

    4. ---code3

    5. --fini4

     

    1. 为了加强账户数据金额的安全性,需要增加验证字段。。

     

    调用::

    在创建,更改金额的时候,都要更改前验证。。。

    更改金额的时候,还要严重数据库里面的数据准确性

    更改时的加密数据从哪里来,直接从校验器来就是了。。

    new SqlCheckor().getValideVal(new_money);

     

     

    作者::  ★(attilax)>>>   绰号:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊  汉字名:艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://www.cnblogs.com/attilax/

     

    2. 创建帐户

    public void createAcc(String uname, double d) {

    BigDecimal money=new BigDecimal(d);

    String v_vali=new SqlCheckor().getValideVal(money);

     String   $sql = "insert into   ecs_users( "+

                "   user_name,user_money,vali_val )values('@u@',  "+String.valueOf(d)+"" +

               

                ",'$vali$' )";

     $sql= $sql.replace("@u@", uname).replace("$vali$", v_vali);

      

      System.out.println("---"+  $sql);

      sqlCkSrv.valideValCheck4newRow(money, v_vali);

    int r=dbx.execSql_retInt($sql);

    System.out.println("----ret int:"+String.valueOf(r));

     

    3. 更改账户

    public int addAmount(String uid, BigDecimal i) {

    iniAcc(uid);

    String sql = strUtil.fmt( "select * from ecs_users where user_name='$uid$'",uid);

    Map row=dbx.uniqueResult2row(sql);

    if(row==null)

    throw new CantFindAcc("uid="+uid);

    BigDecimal now=(BigDecimal) row.get("user_money");

    //SqlCheckor sqlCkSrv=

    if(row.get("vali_val")!=null)   //for compati  olddata no vali

    sqlCkSrv.valideValCheck4oldrow(row.get("user_money"),row.get("vali_val").toString() );

    BigDecimal  new_money=now.add(i);

    String new_money_vali= new SqlCheckor().getValideVal(new_money);

    new SqlCheckor().valideValCheck4newRow(new_money, new_money_vali);

    //DataLogicSales

    // TODO Auto-generated method stub

     /* 更新用户信息 */

      String sql2 = "UPDATE   ecs_users "+

                " SET user_money =$newMoney$,vali_val='$vali$'"+

               

                " WHERE user_name = '"+uid+"' LIMIT 1";

    String   $sql = sql2.replace("$newMoney$", new_money.toString()).replace("$vali$",new_money_vali);

      

      System.out.println("---"+  $sql);

      

    int r=dbx.execSql_retInt($sql);

    if(r!=1)

    throw new AccEx(" acc ex ret is:"+String.valueOf(r) +" uid:"+uid);

    System.out.println("----ret int:"+String.valueOf(r));

    return r;

    }

    }

    4. ---code

     

    public void valideValCheck4oldrow( String sql,String col,String valide_col) {

     

    //Map row=sqlSrv.executeQueryFirstRow(sql);

    //String v=(String) row.get(col);

    //String valid=(String) row.get(valide_col);

    //if(! AesV2q421.encrypt(v, "ilovmole").equals(valid))

    //

    //throw new ValidValCheckEx("sql:"+sql);

    }

    public void valideValCheck4newRow(Object val,String valEncoded) {

     

     

    if(! AesV2q421.encrypt(val.toString(), "ilovmole").equals(valEncoded))

    throw new ValidValCheckEx("val.encode:"+val+"-"+valEncoded);

    }

    public String getValideVal(Object v)

    {

    return AesV2q421.encrypt(v.toString(), "ilovmole");

    }

     

    /**should str2 dec compare..cant dec2str comapre..cause to db and from db ,then num point maybe changte...but true val is not change..

    attilax    2016年4月25日  下午10:24:55

     * @param object

     * @param object2

     */

    public void valideValCheck4oldrow(Object val, String valEncoded) {

    //8CBAC0UjkdSjLBFwKNB2iA==

    BigDecimal money=new BigDecimal(  AesV2q421.decrypt(valEncoded, "ilovmole"));

    if(money.compareTo(   (BigDecimal) val)!=0)

    throw new ValidValCheckEx("val.encode:"+val+"-"+valEncoded);

     

     

    5. --fini

    }

     

  • 相关阅读:
    WebAPI搭建(一)如何在Webforms 下 搭建WebAPI
    解决VS2010在新建实体数据模型出现“在 .NET Framework Data Provider for Microsoft SQL Server Compact 3.5 中发生错误。请与提供程序供应商联系以解决此问题。”的问题
    ASP.NET 解决在点击Button执行服务器事件之前验证用户输入并阻塞
    python中强大的list
    除法运算和四舍五入
    python的基本数学运算
    配置python环境
    唠叨一些关于Python的事情
    人生苦短,我用python
    ASP.NET MVC4实现TinyMCE 4.0.20自定义上传功能
  • 原文地址:https://www.cnblogs.com/attilax/p/5433299.html
Copyright © 2011-2022 走看看