<原>傻不啦叽

本文通过几个具体的例子探讨了编程过程中常见的错误,包括Java中方法可见性问题导致的方法未找到异常,Struts2中条件判断的正确使用以及JavaScript中保留关键字的误用等。
  1. "java.lang.NoSuchMethodException": 原因竟然是因为我把方法定义成了private. 难怪找不到方法了. 晕倒...
  2. <s:if test="list.size()>0">
        Show Query Result...
    </s:if>
    <s:elseif test="list.size()==0"> //加上条件list.size()==0, 使其不在没查询的时候就显示无结果
        Sorry! No Searched Result...
    </s:elseif>
  3. 用js写个delete方法代码如下:
    function delete(){
        doSomething...;
    }
     一直调用不成功. 郁闷. 过了好大一会才想起来delete是保留字. 寒...
    (参考: JAVASCRIPT保留字 转自:http://www.blabla.cn/js_tutorials/090_js_reserved_words.html)


    Javascript 保留字列表:

    breakdeletefunctionreturntypeof
    casedoifswitchvar
    catchelseinthisvoid
    continuefalseinstanceofthrowwhile
    debuggerfinallynewtruewith
    defaultfornulltry 


    Javascript未来可能用到的保留字列表:

    abstractdoublegotonativestatic
    booleanenumimplementspackagesuper
    byteexportimportprivatesynchronized
    charextendsintprotectedthrows
    classfinalinterfacepublictransient
    constfloatlongshortvolatile

在Java中,如果使用XML配置文件,而是完全依赖于注解,`@SelectProvider`主要是由Hibernate提供的一种机制,用于从Java代码中生成SQL查询语句。这种方式相比使用XML `<where>` 和 `<if>` 标签,有以下几个优点: 1. **灵活性**:`@SelectProvider`允许你在运行时动态计算SQL,这意味着你可以基于业务逻辑或用户输入构造复杂的查询。比如,你可以创建一个函数,接收参数,然后返回一个预编译的SQL模板。 ```java @NamedNativeQuery(name = "getUsers", query = "SELECT * FROM users WHERE id IN :ids", resultClass = User.class, parameters = { @Parameter(name = "ids", type = Integer[].class, mode = ParameterMode.IN) }) List<User> getUsers(@Param("ids") int[] ids); ``` 这里,`@NamedNativeQuery` 注解就替代了 XML 中的 `<query>` 标签。 2. **代码清晰**:使用注解的方式可以将SQL查询与其相关的业务逻辑紧密关联起来,提高代码的可读性和维护性。 然而,`<where>` 和 `<if>` 等标签在某些特定场景下(如较老版本的Hibernate或者需要处理复杂嵌套逻辑),仍然可用。但是它们通常是在更底层的配置文件(如hibernate.cfg.xml)中使用的,如注解形式直观易懂。 因此,如果在注解优先的环境中,`@SelectProvider`会是一个更好的选择,特别是当你需要动态生成复杂的查询时。但如果你仍然需要保持与遗留系统兼容,或者对查询条件有非常精细的控制,则两者都可以结合使用,视具体需求而定。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值