文章目录
1.if区分
mybatis :
<if test="startTime!=null"></if>
java Data JPA:
//意思是 :startTime为获取到startTime的参数,如果不等于''或者null,那么createTime等于startTime,反之等于1=1
if(:startTime !='' ,createTime=:startTime,1=1 )
//还有一个问题就出在,如果age等于0了,会全部出现,百思不得其解,所以在这里我把0放入条件
@Query(nativeQuery = true, value = "SELECT * FROM student WHERE name='张三' and if(:age != ''||:age=0,age_a = :age,1=1)")
2.时间写法
mybatis :
//这是Time大于createTime
#{time} >= create_time
java Data JPA:
#{time} >= create_time
3.参数为List类型
mybatis:
item表示集合中每一个元素进行迭代时的别名,
index用于表示在迭代过程中,每次迭代到的位置(计数器从0开始)
open表示该语句以什么开始,
separator表示在每次进行迭代之间以什么符号作为分隔 符,
close表示以什么结束
select * from user where id in
<foreach collection="list" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
java Data JPA:
//此处的ids为参数 List<Student> ids
select * from student where id in (:ids)
4.返回一个对象
mybatis:
此处不写了,直接自己映射直接返回就行
java Data JPA:
我从未试过如此难返回对象的东西,试了网上大多数方法,没有管用的,只能自己用Object接收,然后自己转
如需要单个类返回
Object o = (拿到的数据);
Object [] obj = (object[])o;
然后用 obj[i] 数组的用法,对比取出来的值,挨个存储
或者返回一个List<Object>
List<Object> o = (拿到的数据);
for(Object obj:o){
Object [] ob = (object[])obj;
后续如上面
}
5.参数传入显示
:id #这种,据说还有?id这种,但是我试了,不咋管用