编程语言
首页 > 编程语言> > java – 我们可以使用一个RowMapper对象获取结果,而不是每次都创建对象吗?

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