java - 如何将对象更改为字符串(java spring boot)

标签 java mysql spring spring-boot jsp

当我运行代码时,我得到了对象

[[Ljava.lang.Object;@8f17f7c, [Ljava.lang.Object;@6c0a4f24, 
 [Ljava.lang.Object;@be4886c, [Ljava.lang.Object;@1760591d, 
 [Ljava.lang.Object;@14e9ce12, [Ljava.lang.Object;@2aa4c0c4, 
 [Ljava.lang.Object;@5ac9a14]

所以..我想得到字符串结果,请在下面教我方法

[Dataset_info(Ds_id=1111, ds_code=a, ds_name=e, ds_category=g, ds_stru=q, insert_ddtt=null, update_ddtt=null), Dataset_info(Ds_id=11111, ds_code=z, ds_name=eww, ds_category=g, ds_stru=q, insert_ddtt=null, update_ddtt=null)]

@Data
@Entity
@Table(name = "category")
@DynamicInsert
@DynamicUpdate
@NoArgsConstructor
@AllArgsConstructor
public class Category {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "category_id", columnDefinition = "INT(11)")
    private Integer Category_id;
    @Column(name = "name", columnDefinition = "VARCHAR(20)")
    private String name;
    @Column(name = "parent", columnDefinition = "int(11)")
    private Integer parent;

}

这是我的类别代码

@RestController
@RequestMapping(value = "/Category")
@Slf4j
public class CategoryController {
    @Autowired CategoryRepository categoryRepository;

    @RequestMapping(value = "/all", method =
        RequestMethod.GET)
    @ResponseBody
    public String getCategoryList() {
        List < Object[] > all =
            this.categoryRepository.findByCategory();
        return all.toString();
        //log.info(query);
        //return "Test";
    }
}

这是我的 CategoryController 代码

import java.util.List;


@Repository
public interface CategoryRepository extends
JpaRepository < Category, Integer > {
    public static final String FIND_PROJECTS = "SELECT t1.name 
    AS lev1,
    t2.name as lev2,
    t3.name as lev3,
    t4.name as lev4
    FROM category AS t1 LEFT JOIN category AS t2 ON t2.parent =
    t1.category_id LEFT JOIN category AS t3 ON t3.parent =
    t2.category_id LEFT JOIN category AS t4 ON t4.parent =
    t3.category_id WHERE t1.name = 'ROOT'
    ";

    @Query(value = FIND_PROJECTS, nativeQuery = true)
    public List < Object[] > findByCategory();

}

这是我的类别存储库代码

private void mysql2() {

    this.categoryRepository.findByCategory();
}

这是我的应用程序运行代码

所以请教我,我渴望知道路 谢谢

最佳答案

您可以使用投影来包含这些值:

public interface CategoryProjection {
   public String getLev1();
   public String getLev2();
   public String getLev3();
   public String getLev4();
}

然后使用 Projection with Repository 接口(interface):

//...
@Query(value = FIND_PROJECTS, nativeQuery = true)
public List<CategoryProjection> findByCategory();

如何访问投影中的值

Because It's a interface, only have getter method.

  • 使用循环(foreach 循环、fori 循环...)

例如:

List<CategoryProjection> list = categoryRepository.findByCategory();

list.forEach(c -> {
      System.out.println(c.getLev1() + " - " + c.getLev2());
});
// loop i
for (int i = 0; i < list.size(); i++) {
   System.out.println(list.get(i).getLev1() + " - " + list.get(i).getLev2());         
}
  • 使用索引

例如:获取索引 0 中的对象类别

String lev1 = list.get(0).getLev1();

关于java - 如何将对象更改为字符串(java spring boot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58639920/

相关文章:

java paint 问题 - 黑色组件

java - Hibernate 查询比较中的法语字符问题

php - 带日期计算的棘手 MySQL 查询

python - python 将包含日期时间对象的记录插入 mysql 数据库时出现问题

mysql - 如何创建将数据存储到 mysql 数据库的 angularjs springboot 应用程序。使用 json

java - 创建还包含 Sleuth 依赖项的 Spring Boot 管理服务器

java - 如何转换InputStream.read(new byte[1024]);到字符串?

java版本 "1.7.0_171"支持密码套件TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

php - 将特定页面限制为仅在 Codeigniter 中登录的用户的最佳做法是什么?

java - 如何使用rest模板下载图片?