我有一个带对的hashmap。 其中的关键是表中的列名现在我想将它们插入到表中的users_table中, 我应该能够将键与列名匹配,如果两者相同,则将该值插入表中。
我正在做的是我必须用所有列编写preparedstatement,然后使用preparedsatatement的setter方法将hashmap值作为参数传递。 为了做到这一点,我需要知道表的所有列,这将是乏味的工作,因为没有。列和此步骤将重复到no.of表。
告诉我这样做的任何想法,在此先感谢
答案 0 :(得分:0)
首先,使用LinkedHashMap
来保留列的顺序。当迭代地图以指定列名称然后赋值时,这将产生影响。
我不完全确定你在问什么,但是你暗示了所谓的对象关系映射(ORM)。简而言之,这是一种将数据库表映射到普通旧Java对象(POJO)的方法。虽然它还有很多东西。
如果您有兴趣将数据库表表示为对象,则应该查看Hibernate,它是一种流行的Java ORM API。
否则,创建并保持在数据库和Java项目中统一的标准,你会没事的。
编辑:
如果我更了解你的问题,那么你知道列的名字会有问题吗?这是你必须要知道的,没有一种简单,动态或有效的方式来获取这些信息。
设置该信息的一个示例是将列名存储在表示您的表的类的String
数组中。然后,您可以在保存到数据库时访问该数组并对其进行迭代。
最后,如果你想做一些阅读,请查看我的答案(Store nested Pojo Objects as individuall Objects in Database)。我深入研究了如何管理数据库到Java,反之亦然。