/* * Copyright 2009-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License i distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package net.paoding.rose.jade.annotation; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 用{@link SQLParam} 注解标注DAO方法的参数,指定参数的名称,使得可以在SQL中通过":参数名"的方式使用它。 * Jade通过PreparedStatment动态地把参数值提交给数据库执行。 * <p> * * <span style='margin-left:50px;'> * <code>@SQL("SELECT id, account, name FROM user WHERE id=:userId")<span> * <br> * <span style='margin-left:50px;'> public User getUser(@SQLParam("userId") String id);</code><span> * <p> * * @author 王志亮 [qieqie.wang@gmail.com] * @author 廖涵 [in355hz@gmail.com] */ @Target( { ElementType.PARAMETER }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface SQLParam { /** * 指出这个值是 SQL 语句中哪个参数的值 * * @return 对应 SQL 语句中哪个参数 */ String value(); }