3.4 SQL annotation - xphsc/EasyJdbc GitHub Wiki

SQL 注解 用法

注意: 从1.0.6及以上版本

通用 easyjdbc 中的 SQL 注解方法只需定义接口或继承EasyJdbcDao<泛型>例如下面:

/**
  * 使用的注解,默认是@EasyDao 推荐@Repository
  */
@Repository
public  interface  UserDao {
// 注解SQL方法
    
}

/**
  * 继承EasyJdbcDao<泛型>大量公共方法
  */
@Repository
public  interface  UserDao extends EasyJdbcDao<User> {
  // 注解SQL方法
}

6.2 SQL 注解

6.2.1 @SqlSelect(与mybatis注解@Select用法相似)查询

6.2.1.1 纯接口无继承EasyJdbcDao<泛型>

   @SqlSelect(value = "select * from t_user",entityClass=User.class)
    public List<User> listUser();

6.2.1.2 继承EasyJdbcDao<泛型>

   @SqlSelect(value = "select * from t_user")
    public List<User> listUser();

6.2.1.3 @SqlParam传参

  @SqlSelect(value = "select * from t_user where id=#{id}",entityClass=User.class)
 //还可以使用 :id 
 //@SqlSelect(value = "select * from t_user where id=:id",entityClass=User.class)
    public User getUserById(@SqlParam("id")Integer id);

6.2.1.4 Map传参

  @SqlSelect(value = "select * from t_user where id=#{id}",entityClass=User.class)
    public List<User> getUserByMapId(Map map);

6.2.1.5 动态映射对象

   @SqlSelect(value = "select * from t_user where id=:id",entityClass=UserDTO.class)
    public UserDTO getUserById(@SqlParam("id")Integer id);

6.2.1.6 分页

@SqlSelect(
value = "select * from t_user where user_name=#{userName}",
entityClass=UserDTO.class
)
    public PageInfo<UserDTO> listUser(@SqlParam("userName")String  userName, @SqlParam("pageNum")Integer pageNum, @SqlParam("pageSize")Integer pageSize);

6.2.2 @SqlSelectProvider查询(与mybatis注解@SelectProvider用法相似)

6.2.2.1 查询

sql 对象
public class UserSqlProvider{
    public String listUserBySql(){
        return new SQL(){{
            SELECT("*");
            FROM("t_user");
        }
        }.toString();
    }
    }
}

 @SqlSelectProvider(type= UserSqlProvider.class,method = "listUserBySql",entityClass =UserDTO.class )
    public List<UserDTO> listUserBySql();

6.2.2.2 @SqlParam传参

sql 对象
public class UserSqlProvider{
   public String getUserBySql(){
 return new SQL(){{
            SELECT("*");
            FROM("t_user");
            WHERE("id=#{id}").
        }
        }.toString();
    }
}

 @SqlSelectProvider(type= UserSqlProvider.class,method = "getUserBySql",entityClass =UserDTO.class )
    public UserDTO getUserBySql((@SqlParam("id")Integer id));

6.2.2.2 Map动态传参

sql 对象
public class UserSqlProvider{
  public String listUserBySqlMap(Map map){
  return new SQL() {
            {
                SELECT("*");
                FROM("t_user");
                if (Maps.containsKey(map, "id")) {
                    if (Maps.getInteger(map, "id") != null) {
                        WHERE("id=#{id}");
                    }
                }
            }

        }.toString();
    }
}
@SqlSelectProvider(type= UserSqlProvider.class,method = "listUserBySqlMap",entityClass =UserDTO.class )
    public List<UserDTO> listUserBySqlMap(Map map);

6.2.3 SqlInsert,SqlInsertProvider 新增注解

6.2.3.1 @SqlInsert

//对象传参
@SqlInsert("INSERT INTO t_user(id,user_name) VALUES(#{user.id},#{user.userName})")
    Integer saveUser(@SqlParam("user") User user);
//单值传参
   @SqlInsert("INSERT INTO t_user(id,user_name) VALUES(#{id},#{userName})")
    Integer saveUser(@SqlParam("id") Integer id,@SqlParam("userName") String userName);
//返回主键值
  @SqlInsert("INSERT INTO t_user(id,user_name) VALUES(#{id},#{userName})")
    @SqlOptions(useGeneratedKeys = true)
    Integer saveUser(@SqlParam("id") Integer id,@SqlParam("userName") String userName);

6.2.3.2 @SqlInsertProvider

//SQL对象
public class UserProvider {
//SQL对象方法参数Map map可传可不传  如果通过MAP动态判断 就必须传
  public String   saveUserBySql(Map map){
      SQL sql=new SQL();
      sql.INSERT_INTO("t_user").
              VALUES("id,user_name","#{id},#{userName}");
       return sql.toString();       
  }
}
 @SqlInsertProvider(type = UserProvider.class,method = "saveUserBySql")
    Integer saveUserBySql(Map map);

6.2.4 SqlUpdate,SqlUpdateProvider修改注解

6.2.4.1 @SqlUpdate

//对象传参
@SqlUpdate("UPDATE   t_user SET user_name=#{user.userName} WHERE id=#{user.id})")
    Integer updateUser(@SqlParam("user") User user);
  //单值传参
    @SqlUpdate("UPDATE   t_user SET user_name=#{userName} WHERE id=#{id})")
    Integer updateUser(@SqlParam("id") Integer id,@SqlParam("userName") String userName);

6.2.4.1 @SqlUpdateProvider

//SQL对象
public class UserProvider {
//SQL对象方法参数Map map可传可不传  如果通过MAP动态判断 就必须传
    public String   updateUserBysql(Map map){
        SQL sql=new SQL();
        sql.UPDATE("t_user").
                SET("user_name=#{userName}").WHERE("id=#{id}");
        return sql.toString();
    }
}
//MAP
 @SqlUpdateProvider(type = UserProvider.class,method = "updateUserBysql")
    Integer updateUserBysql(Map map);
//
  @SqlUpdateProvider(type = UserProvider.class,method = "updateUserBysql")
    Integer updateUserBysql(@SqlParam("id") Integer id,@SqlParam("userName") String userName);

6.2.5 SqlDelete,SqlDeleteProvider删除注解

6.2.5.1 @SqlDelete

 @SqlDelete("DELETE FROM    t_user WHERE id=#{id})")
    Integer deleteUser(@SqlParam("id") Integer id);

6.2.5.1 @SqlDeleteProvider

//SQL对象方法参数Map map可传可不传  如果通过MAP动态判断 就必须传
 public String   deleteUserBysql(Map map){
        SQL sql=new SQL();
        sql.DELETE_FROM("t_user").
                WHERE("id=#{id}");
        return sql.toString();
    }
 @SqlDeleteProvider(type = UserProvider.class,method = "deleteUserBysql")
    Integer deleteUserBysql(Map map);
 @SqlDeleteProvider(type = UserProvider.class,method = "deleteUserBysql")
    Integer deleteUserBysql(@SqlParam("id") Integer id);
⚠️ **GitHub.com Fallback** ⚠️