相信很多使用springCloud的同行对如何从库查数据很熟练了,不就是在dao层写个接口类xxxDao,然后在xxDaoMapper.xml写个相对于的文件,在这里写SQL。这应该是百分之九十九的开发者的通用方法,有没有想过,除了这种方法,还有其他方法吗?答案是有的。
方法1:就是上面讲的百分之九十九的同行都会的,在此就不细说了。
方法2:直接在xxxDao接口类的方法上方直接来个注解:
@Select("select * from table where xxx")
List<User> getUserList(List<Integer> userIds);
如果仔细的朋友可能会问,如果我需要进行判空的,那个怎么办?
放心,你想到的框架里都想到了,如果你的SQL比较复杂,那么可以用这个注解:@SelectProvider
使用这个注解注意几点:
1、在xxxDao类的相应方法上使用@SelectProvider,该注解有两个参数:
1.1 Type:这里写你拼接SQL的java类,假设为UserDao2.java;
1.2 method:这里写UserDao2.java文件的中那个方法的字符串类型,如:“getUsers”。
2、如1中所说,你需要把复杂的SQL放到一个新类UserDao2.java类。
代码如下:
@SelectProvider(type = UserDao2.class,method = "getUsers")
List<User> getUsers();
public class UserDao2 {
public String getUsers(){
return "这里可以拼接复杂的SQL";
}
}