繁体   English   中英

如何每次从 spring 启动 java sql 中的 jdbcTemplate.queryForList(sql) 中删除列名

[英]How to get rid of column name every time from jdbcTemplate.queryForList(sql) in spring boot in java sql

这是代码:

public void readOperation() {
        String sql="select * from std";
        List list=jdbcTemplate.queryForList(sql);
        
   for(int i=0;i<list.size();i++)
        System.out.println(list.get(i));
}

我已经尝试了太多以这种方式打印

id name father
2451 mofiz kudda
1524 ahsan abdullah

但它总是这样打印:

{id=2451, name=mofiz, father=kudda}
{id=1524, name=ahsan, father=abdullah}

在 Spring 中,我们可以使用 jdbcTemplate.query() 从数据库中查询记录并通过行映射器将行转换为 Object 列表,覆盖 ZA8CFDE6331BD59EB2666F8911CB 中的 toString() 方法以打印数据。

public void readOperation()
{
    String sql = "SELECT * FROM STD";
    List<Std> stds = jdbcTemplate.query(sql, (rs, rowNum) -> new Std(rs.getInt("id"), rs.getString("name"), rs.getString("father")));

    for (Std std : stds)
        std.toString();
}

public class Std
{
    private int id;

    private String name;

    private String father;

    @Override
    public String toString()
    {
        StringBuffer buff = new StringBuffer();
        buff.append(this.id).append(" ").append(this.name).append(" ").append(this.father);
        return buff.toString();
    }
}

jdbcTemplate.queryForList 返回一个 List<Map<String,Object>> ,如果你将此列表传递给 System.out.println ,它会调用 List 的 toString 方法,然后是 Map 和条目。 这就是 output 看起来像您的样子的原因。

您必须编写代码才能像这样打印它。

System.out.println("id\\tname\\tfather");
for(Map<String,Object> map : list) {
    System.out.println(map.get("id") + "\\t" + map.get("name") + "\\t" + map.get("father"));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM