Java 在使用注释的同时,如何在mybatis中使用hashmap将值插入到行中?

Java 在使用注释的同时,如何在mybatis中使用hashmap将值插入到行中?,java,mybatis,spring-mybatis,Java,Mybatis,Spring Mybatis,如果我有一个对象,比如 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); 但是如果我有一个值为 studen

如果我有一个对象,比如

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);
但是如果我有一个值为

studentDetailsMap = [{id,10},{name,"smith"}] //represented as key value pairs for understanding
我所拥有的是包含如此多列的大型表,mybatis可以将数据作为每一行的hashmap使用。这样的情况太多了,所以我不想创建太多的pojo类,这就是为什么我试图找到一种直接从hashmap插入mybatis的方法

在映射器XML中创建映射器元素:

插入到${tablename} ${index} 选择 {element} 来自双重

在界面中创建相应的函数。 公共整数insertMICTables@Paramtablename字符串tablename,@Parammapdata-Map-data

准备输入参数:

Map<String, String> mapdata = new HashMap<String, String>();
mapdata.put("columna", "id01");
mapdata.put("columnb", "Hello manager");
this._epMapper.insertMICTables("tablename", mapdata) ;

HashMap的情况也差不多。如果它不起作用,你应该解释你尝试了什么以及它是如何不起作用的。@ave你是对的。这几乎是相同的方式。我的hashmap缺少行所需的一些值,因此导致了错误。很高兴知道问题已得到解决:D