1:插入一条记录并且返回主键Id
<insert id="insert" useGeneratedKeys="true" keyProperty="aa" parameterType="xx">
以上的语句中,中间两个属性是必须的,aa是这个表的主键id字段所对应的Java对象的字段,插入后对象.getXXId()即可获取主键
2:批量插入
<!-- 批量插入 -->
<insert id="batchAdd" parameterType="java.util.List">
INSERT INTO two_stage(model_manage_id,two_stage_name,two_stage_value,coefficient,norm_type,p_id,stage_leval)
VALUES
<foreach collection="list" item="item" index="index" separator="," >
(#{item.modelManageId},#{item.twoStageName},#{item.twoStageValue},
#{item.coefficient},#{item.normType},#{item.pId},#{item.stageLeval})
</foreach>
</insert>
//创建一级指标
TwoStage v=new TwoStage(modelManage.getModelManageId(), "V", modelVo.getV(), null, 0, 0,1);
TwoStage c=new TwoStage(modelManage.getModelManageId(), "C", modelVo.getC(), null, 1, 0,1);
TwoStage s=new TwoStage(modelManage.getModelManageId(), "S", modelVo.getS(), null, 2, 0,1);
ArrayList<TwoStage> jList=new ArrayList<TwoStage>();
jList.add(v);
jList.add(c);
jList.add(s);
mapperService.insert("com.companyname.userRoleFunction.bean.mapper.TwoStageMapper.batchAdd",jList);
3:动态查询
<select id="selectUserForeach" resultType="java.lang.Integer" parameterType="list">
select two_stage_id from two_stage
<where>
two_stage_name in
<foreach item="item" index="index" collection="list"
open="(" separator="," close=")">
#{item}
</foreach>
</where>
order by field(two_stage_name,
<foreach item="item" index="index" collection="list"
separator="," >
#{item}
</foreach>)
</select>
ArrayList<String> list1=new ArrayList<String>();
list1.add("V");
list1.add("C");
list1.add("S");
//一级指标的id
List<Integer> onelevalId = mapperService.selectAllObject("com.companyname.userRoleFunction.bean.mapper.TwoStageMapper.selectUserForeach", list1);
//以上动态查询中,第一个遍历是把list里面的查询条件遍历出来,后一个遍历是让查询出来的记录按查询条件先后顺序排列,因为默认的是按查询出来记录的主键id排列的