代码之家  ›  专栏  ›  技术社区  ›  Glide

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

  •  0
  • Glide  · 技术社区  · 9 年前

    将POJO插入到 键值表 下面是Spring的 NamedParameterJdbcTemplate 无需手动循环 通过每个字段并调用insert?

    POJO:

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

    关键字值 person_attributes 表:

    attribute      | value
    ---------------------
     firstName     | Bob
     lastName      | Billy
     age           | 30
    
    2 回复  |  直到 9 年前
        1
  •  1
  •   sidgate    9 年前

    你可以用杰克逊的 ObjectMapper 类将POJO转换为键值对

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

    然后迭代每个地图条目并插入数据库

    或者,您可以使用 Apache commons beanutils

        2
  •  1
  •   Joe    9 年前

    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/