When fetching results from db through springJdbcTemplate, everywhere I have seen that they are passing the new object of RowMapper everytime. Is this required? Or can we just use one object and pass it again and again.
Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, new StudentRowMapper());
I know this object will be garbage collected later on, but I didn't wanted to create the same object over and over again.
Can I use
Student student = jdbcTemplateObject.queryForObject(SQL, new Object[] { id }, this.studentMapper);
?
Has this any thread safety issue?
Yes you should be able to reuse the object.
As long as your class is thread safe there is no issue. JdbcTemplate is thread safe by design
Why not just create your RowMapper and let Spring manage it? There should be no reason to create a new instance every time. Just autowire in the one managed by Spring. As long as your mapper isn't doing anything non-thread-safe, then should be just fine.
...