Java JDBCTempalte行映射器读取postgres表中的jsonb列
我正在使用JDBCTemplate读取Postgres表,该模板具有以下模式: 订单ID |订单名称|功能|额外功能| orderid:整数Java JDBCTempalte行映射器读取postgres表中的jsonb列,java,postgresql,spring-boot,jdbctemplate,rowmapper,Java,Postgresql,Spring Boot,Jdbctemplate,Rowmapper,我正在使用JDBCTemplate读取Postgres表,该模板具有以下模式: 订单ID |订单名称|功能|额外功能| orderid:整数 订单名称:文本 特色:josnb 额外功能:jsonb 订购DTO: 现在,在执行从public.orders执行SELECT*查询时,我编写了如下行映射器: jdbcTemplate.query(“从public.orders中选择*”,new OrderRowMapper()) 行映射器 public class OrderRowMapper imp
订单名称:文本
特色:josnb
额外功能:jsonb
订购DTO:
现在,在执行从public.orders执行SELECT*查询时,我编写了如下行映射器:
jdbcTemplate.query(“从public.orders中选择*”,new OrderRowMapper())
行映射器
public class OrderRowMapper implements RowMapper<Order>{
@Override
public Order mapRow(ResultSet rs, int rowNum) throws SQLException{
Order order = new Order();
order.setOrderid(rs.getInt("orderid"));
order.setFeatures()// how to read jsonbcolumn?
}
}
公共类OrderRowMapper实现了RowMapper{
@凌驾
公共顺序映射行(ResultSet rs,int rowNum)抛出SQLException{
订单=新订单();
order.setOrderid(rs.getInt(“orderid”);
order.setFeatures()//如何读取jsonbcolumn?
}
}
我可以设置除jsonb列之外的所有值,我不知道如何实现行映射器,请帮助。
public class OrderRowMapper implements RowMapper<Order>{
private ObjectMapper mapper = new ObjectMapper();
@Override
public Order mapRow(ResultSet rs, int rowNum) throws SQLException{
List<Features> features = objectMapper
.readValue(rs.getString("features"),
new TypeReference<List<Features>>(){});
Order order = new Order();
order.setOrderid(rs.getInt("orderid"));
order.setFeatures()// how to read jsonbcolumn?
}
}
公共类OrderRowMapper实现了RowMapper{
私有对象映射器映射器=新对象映射器();
@凌驾
公共顺序映射行(ResultSet rs,int rowNum)抛出SQLException{
List features=objectMapper
.readValue(rs.getString(“功能”),
新类型引用(){});
订单=新订单();
order.setOrderid(rs.getInt(“orderid”);
order.setFeatures()//如何读取jsonbcolumn?
}
}
您是否尝试过ObjectMapper mapper=new ObjectMapper();List features=objectMapper.readValue(rs.getString(“features”),新类型引用>(){})代码>您的解决方案正在运行。(Y) ObjectMapper
是线程安全的,因此您可以引用它
public class OrderRowMapper implements RowMapper<Order>{
@Override
public Order mapRow(ResultSet rs, int rowNum) throws SQLException{
Order order = new Order();
order.setOrderid(rs.getInt("orderid"));
order.setFeatures()// how to read jsonbcolumn?
}
}
public class OrderRowMapper implements RowMapper<Order>{
private ObjectMapper mapper = new ObjectMapper();
@Override
public Order mapRow(ResultSet rs, int rowNum) throws SQLException{
List<Features> features = objectMapper
.readValue(rs.getString("features"),
new TypeReference<List<Features>>(){});
Order order = new Order();
order.setOrderid(rs.getInt("orderid"));
order.setFeatures()// how to read jsonbcolumn?
}
}