• mybatis 遍历字段和字段对应的值循环插入


    java代码:

    /**
    * 插入单条数据
    * @param request
    * @param response
    * @param id
    * @param str
    * @return
    * @throws Exception
    */
    @RequestMapping(value="insertData")
    @ResponseBody
    public Map<String,Object> insertData(HttpServletRequest request,
    HttpServletResponse response,Integer id,String str) throws Exception{
    String key=null;
    String value;
    String tableName=null;
    BusinessDesc businessDesc = businessDescService.queryById(id);
    //取出所有字段
    List<ColumnRule> columnnlist = columnRuleService.findByBusinessId(id);
    List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
    List<String> list2 = new ArrayList<String>();
    Map<String,Object> maps=new HashMap<String,Object>();
    JSONObject jsonObject = new JSONObject(str);
    Iterator iterator = jsonObject.keys();
    while(iterator.hasNext()){
    Map<String,Object> map=new HashMap<String,Object>();
    key = (String) iterator.next();
    value = jsonObject.getString(key);
    for(ColumnRule rule:columnnlist){
    if(rule.getName().equals(key)){
    if(rule.getFieldType().contains("int")){
    if(value!=null && !"".equals(value)){
    map.put("value", Integer.parseInt(value));
    }else{
    map.put("value",0);
    }
    }else{
    map.put("value", value);
    }
    }
    }
    map.put("key", key);
    list.add(map);
    }
    if(businessDesc!=null){
    tableName=businessDesc.getTablename();
    }
    maps.put("list", list);
    maps.put("table", tableName);
    businessDescService.insertData(maps);
    return maps;
    }
    /**
    * 修改单条数据
    * @param request
    * @param response
    * @param dataId
    * @param str
    * @param id
    * @return
    * @throws Exception
    */
    @RequestMapping(value="updateData")
    @ResponseBody
    public Map<String,Object> updateData(HttpServletRequest request,
    HttpServletResponse response,Integer dataId,String str,Integer id) throws Exception{
    String tableName=null;
    String key=null;
    String value;
    Map<String,Object> maps=new HashMap<String,Object>();
    List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
    //获取表名
    BusinessDesc businessDesc = businessDescService.queryById(dataId);
    //取出所有字段
    List<ColumnRule> columnnlist = columnRuleService.findByBusinessId(dataId);
    JSONObject jsonObject = new JSONObject(str);
    Iterator iterator = jsonObject.keys();
    while(iterator.hasNext()){
    Map<String,Object> map=new HashMap<String,Object>();
    key = (String) iterator.next();
    value = jsonObject.getString(key);
    for(ColumnRule rule:columnnlist){
    if(rule.getName().equals(key)){
    if(rule.getFieldType().contains("int")){
    if(value!=null && !"".equals(value)){
    map.put("value", Integer.parseInt(value));
    }else{
    map.put("value", 0);
    }
    }else{
    if(value!=null &&!"".equals(value)){
    if(!key.equals("id")){
    map.put("value", value);
    }
    }
    }
    }
    }
    map.put("key", key);
    if(key.equals("id")){
    map.put("value", id);
    }
    list.add(map);
    }
    if(businessDesc!=null){
    tableName=businessDesc.getTablename();
    }
    maps.put("list", list);
    maps.put("table", tableName);
    maps.put("id", id);
    businessDescService.updateData(maps);
    return maps;
    }

    隐射文件:

    <insert id="insertData" parameterType="java.util.Map">
    insert into ${table}
    (<foreach collection="list" item="item" index="index" separator=",">${item.key}</foreach>)
    values
    (
    <foreach collection="list" item="subitem" index="index" separator=",">
    #{subitem.value}
    </foreach>
    )
    </insert>
    <update id="updateData" parameterType="java.util.Map">

    update
    ${table}
    set
    <foreach collection="list" item="item" index="index" separator=",">${item.key}=#{item.value}</foreach>
    where id=#{id}
    </update>

    遍历list

    dao类:List<Garage> findRecommendGarageById(List<String> list);

    xml隐射文件:

    <select id="findRecommendGarageById" resultMap="BaseResultMap" resultType="java.util.List">
    select <include refid="Base_Column_List" /> from s_garage
    <where>
    id in
    <foreach collection="list" index="index" item="item" open="(" separator="," close=")">
    #{item}
    </foreach>
    </where>
    </select>

  • 相关阅读:
    HDU 4870 Rating(高斯消元 )
    iOS开发者账号详细介绍
    iOS之Block
    CocoaPods 安装和使用
    搭建自己的局域网服务器
    MarkDown语法收集
    正则表达式参考表
    iOS企业级应用打包与部署
    iOS开发之代码加载方式进入APP的界面
    shell脚本小Demo
  • 原文地址:https://www.cnblogs.com/flywang/p/6814311.html
Copyright © 2020-2023  润新知