为了账号安全,请及时绑定邮箱和手机立即绑定

ssm通用mapper的排序怎么做

/ 猿问

ssm通用mapper的排序怎么做

SSM
qq_花开花谢_0 2018-11-25 09:00:48

ssm通用mapper的排序怎么做


查看完整描述

1 回答

?
拉风的咖菲猫

如何开发自己的通用Mapper

HsqldbMapper实例

第一步,创建HsqldbMapper<T>

public interface HsqldbMapper<T> {
}

这个接口就是我们定义的通用Mapper,具体的接口方法在**第三步**写。其他的Mapper可以继承这个HsqldbMapper<T>。

第二部,创建HsqldbProvider

public class HsqldbProvider extends MapperTemplate {
//继承父类的方法
public HsqldbProvider(Class<?> mapperClass, MapperHelper mapperHelper) {
super(mapperClass, mapperHelper);
}
}

这个类是实际处理操作的类,需要继承MapperTemplate,具体代码在**第四步**写。

第三步,在HsqldbMapper<T>中添加通用方法

这里以一个分页查询作为例子。 public interface HsqldbMapper { /** * 单表分页查询 * * @param object * @param offset * @param limit * @return */

@SelectProvider(type=HsqldbProvider.class,method = "dynamicSQL") List
selectPage(@Param("entity") T object, @Param("offset") int offset,
@Param("limit") int limit); }

返回结果为List,入参分别为查询条件和分页参数。在Mapper的接口方法中,当有多个入参的时候建议增加@Param注解,否则就得用param1,param2...来引用参数。

同时必须在方法上添加注解。查询使用SelectProvider,插入使用@InsertProvider,更新使用UpdateProvider,删除使用DeleteProvider。不同的Provider就相当于xml中不同的节点,如<select>,<insert>,<update>,<delete>。

因为这里是查询,所以要设置为SelectProvider,这4个Provider中的参数都一样,只有type和method。

type必须设置为实际执行方法的HasqldbProvider.class,method必须设置为"dynamicSQL"。

通用Mapper处理的时候会根据type反射HasqldbProvider查找方法,而Mybatis的处理机制要求method必须是type类中只有一个入参,且返回值为String的方法。"dynamicSQL"方法定义在MapperTemplate中,该方法如下:

public String dynamicSQL(Object record) {
return "dynamicSQL";
}



查看完整回答
反对 回复 2018-12-23

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信