mybatis学习笔记

resultMap:当数据库字段和实体类成员变量不对应时需要用resultMap标签的id来实现对接,之前的resultType改为resultMap


resultType:当数据库字段和实体类成员变量对应时


parameterType:更新插入删除操作可以用来表示参数类型,传过来的参数是一个变量时parameterType可以省略且#{}作为一个占位符,{}中填任意值都可以,多个变量时需要用索引

update T_student set student_sex=#{s} where student_id='4'



select操作比较特殊由于其查询结果是几个属性值,所以必须要封装成对象才能返回,所以必须用resultType或者resultMap,不能够省略


#{}中可以放什么


1.参数对象的属性
 update T_student set student_sex=#{name},student_age=#{age} where student_id='2'
2.作为占位符时可以是任意内容
 update T_student set student_sex=#{xx} where student_id='2'


3.参数为map时且key的value值是一个变量时那么就可以直接放key


4.参数为map对象时,key所对应的value是一个object时,那么#{}放的值就是对象点变量


 update T_student set student_sex=#{stu.sex},student_age=#{stu.age} where student_id='2'


5.参数的索引
 update T_student set student_sex=#{0},student_age=#{1} where student_id='2'


6.

1.数据量太大时不能直接where 1=1  and 条件。。。。。
slect * from table where 1=1 and 条件  and 条件 
这样大量做1=1的判断会大大降低系统效率


应该采取下面此种方法
这里有几点需要说明,当但条件查询时前面的and会自动省略,多条件查询时
第一个满足条件的字段前面的and也会自动除去


 <select id="querystudentlist"  resultMap="result" >
      select * from T_student
         <include refid="condition"/>
    </select> 
   
   <sql id="condition">
      
       <where>
             <if test="name and ''!=name">
                  
                and student_name=#{name}
             
             </if>
             
            <if test="sex and ''!=sex">
                 
               and  student_sex=#{sex}
             
             </if>
             
              <if test="age and ''!=age">
                
               and  student_age=#{age}
             
             </if>
       
       
       </where>
    
   </sql>
   


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值