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>