Java 如何在不使用实体的情况下显示表中的值?

Java 如何在不使用实体的情况下显示表中的值?,java,sql,spring,hibernate,jpa,Java,Sql,Spring,Hibernate,Jpa,我正在尝试在我的web应用程序中执行“sql解释器”,仅针对CRUD。一切正常,我正在使用方法prepareStatement()执行查询。但我在操作选择上有问题: 当我仅对1字段使用select操作时,解析为字符串会得到相当好的结果: for(String x: resultList){ System.out.println(x); } 有没有办法执行: 从表中选择字段_1、字段_2、字段_3 并在控制台中打印结果,使用一些整洁的表单而不使用实体? 如果这是不可能的,有没有任何方法可

我正在尝试在我的web应用程序中执行“sql解释器”,仅针对CRUD。一切正常,我正在使用方法prepareStatement()执行查询。但我在操作选择上有问题:

当我仅对1字段使用select操作时,解析为字符串会得到相当好的结果:

for(String x: resultList){
    System.out.println(x);
}
有没有办法执行:

从表中选择字段_1、字段_2、字段_3

并在控制台中打印结果,使用一些整洁的表单而不使用实体?


如果这是不可能的,有没有任何方法可以“动态”生成实体?我的意思是使用java代码生成实体。

您可以使用本机查询并明确指定要选择的列:

String sql = "SELECT field_1, field_2, field_3 FROM table";
Query q = em.createNativeQuery(sql);
List<Object[]> results = q.getResultList();

for (Object[] r : results) {
    System.out.println("(field_1, field_2, field_3) = (" + r[0] + ", " + r[1] + ", " + r[2] + ")");
}
String sql=“从表中选择字段1、字段2、字段3”;
Query q=em.createNativeQuery(sql);
List results=q.getResultList();
对于(对象[]r:结果){
System.out.println(“(字段_1,字段_2,字段_3)=(“+r[0]+”,“+r[1]+”,“+r[2]+”);
}
带有Spring数据JPA投影 如果您已经使用了一些实体和Spring存储库,那么您可以将此代码添加到其中一个实体和存储库中。谢谢

公共接口SomeEntityRepository扩展存储库{
@查询(value=“从表中选择字段1、字段2、字段3”,nativeQuery=true)
List getFromTable();
}
其中
表格到

公共接口表{
长getField_1();
字符串getField_2();
字符串getField_3();
}
使用SpringJDBCTemplate 或使用弹簧:

String query=“从id=?”表中选择字段_1、字段_2、字段_3”;
List resluts=jdbcTemplate.queryForObject(
查询,新对象[]{id},新TableDtoRowMapper());
公共类TableDtoRowMapper实现行映射器{
@凌驾
公共TableDtomapRow(结果集rs,int rowNum)引发SQLException{
TableDto dto=新TableDto();
dto.setField_1(rs.getString(“field_1”);
dto.setField_2(rs.getString(“field_2”);
dto.setField_3(rs.getString(“field_3”);
返回dto;
}
}
在本例中,
tabletto
是带有getter和setter的real类