如何将POJO插入到键值数据库表中?

时间:2015-12-21 17:12:06

标签: java spring spring-jdbc jdbctemplate

使用Spring NamedParameterJdbcTemplate 将POJO插入 键值表 的最简单方法是什么?没有手动循环通过每个字段并调用插入?

POJO:

class Person {
   String firstName;
   String lastName;
   int age;
   ...many more fields
}

键值 person_attributes表:

attribute      | value
---------------------
 firstName     | Bob
 lastName      | Billy
 age           | 30

2 个答案:

答案 0 :(得分:1)

您可以使用Jackson的ObjectMapper类将POJO转换为键值对

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> personMap = mapper.convertValue(person, Map.class);

然后迭代每个映射条目并插入数据库

或者您可以使用Apache commons beanutils

答案 1 :(得分:0)

BeanPropertySqlParameterSource是最好的方法:

Person person = .....

String sql = "insert into Person (first_Name, Last_Name, age) " + 
                   "values (:firstName, :lastName, :age)"; 
    namedParameterJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(person)); 

这里有一个完整的例子: http://www.logicbig.com/tutorials/spring-framework/spring-data-access-with-jdbc/named-param-jdbc-template-example/