如果我有类似的对象,我可以使用MyBatis插入db
public class Student {
private int id;
private String name;
}
..
@Insert("INSERT INTO STUDENT (ID,NAME) VALUES (#{id}, #{name})")
@Options(useGeneratedKeys = true, keyProperty = "id")
void insert(Student student);
但是如果我的哈希表的值为as,如何使用mybatis
studentDetailsMap = [{id,10},{name,"smith"}] //represented as key value pairs for understanding
我所拥有的是具有很多列的大表,并且mybatis可以将其数据用作每行的哈希图。这样的情况太多了,所以我不想创建很多pojo类,这就是为什么我试图找到一种直接从hashmap插入mybatis的方法的原因。
答案 0 :(得分:0)
在映射器XML中创建映射器元素:
<insert id="fnInsert">
insert into ${tablename}
<trim>
<trim prefix="(" suffix=")" suffixOverrides=",">
<foreach collection="mapdata" item="element" index="index"
separator=",">${index}</foreach>
</trim> select <foreach collection="mapdata" item="element" index="index"
separator=",">
<trim>
#{element}
</trim>
</foreach> from dual
</trim>
</insert>
public int insertMICTables(@Param("tablename") String tablename, @Param("mapdata") Map<String, String> mapdata);
准备输入参数:
Map<String, String> mapdata = new HashMap<String, String>();
mapdata.put("columna", "id01");
mapdata.put("columnb", "Hello manager");
this._epMapper.insertMICTables("tablename", mapdata) ;