java – 我们可以使用一个RowMapper对象获取结果,而不是每次都创建对象吗?
作者:互联网
当通过springJdbcTemplate从db获取结果时,我看到他们每次都在传递RowMapper的新对象.
这需要吗?或者我们可以只使用一个对象并一次又一次地传递它.
Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, new StudentRowMapper());
我知道这个对象将在以后被垃圾收集,但我不想一遍又一遍地创建同一个对象.
我可以用吗
Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, this.studentMapper);
?
这有任何线程安全问题吗?
解决方法:
为什么不创建你的RowMapper并让Spring管理它?每次都没有理由创建新实例.只需在Spring管理的那个中自动装配即可.只要您的映射器没有做任何非线程安全的事情,那么应该没问题.
@Component
...RowMapper class...
…
@Service
...WhateverService class...
@Autowired
private RowMapperClass theRowMapper;
public void doSomething() {
Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, theRowMapper);
}
标签:spring-jdbc,java,spring,jdbc 来源: https://codeday.me/bug/20190824/1706385.html