gpt4 book ai didi

java - 我们可以使用一个 RowMapper 对象而不是每次都创建对象来获取结果吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:42:01 27 4
gpt4 key购买 nike

当通过 SpringJdbcTemplate 从数据库中获取结果时,我到处都看到它们每次都在传递 RowMapper` 的新对象。

这是必需的吗?或者我们可以只使用一个对象并一次又一次地传递它吗?

例子:

Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, new StudentRowMapper());

我知道这个对象稍后会被垃圾回收,但我不想一遍又一遍地创建同一个对象。

我可以像这样重用行映射器实例吗?

Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, this.studentMapper);

这有任何线程安全问题吗?

最佳答案

为什么不直接创建您的 RowMapper 并让 Spring 管理它呢?没有理由每次都创建一个新实例。只需在 Spring 管理的那个中 Autowiring 。只要您的映射器不做任何非线程安全的事情,就应该没问题。

@Component
private RowMapper class...

...

@Service
WhateverService class...

@Autowired
private SomeRowMapper theRowMapper;


public void doSomething() {
Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, theRowMapper);
}

关于java - 我们可以使用一个 RowMapper 对象而不是每次都创建对象来获取结果吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34951402/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com