避免多次创建 SimpleJdbcCall
Posted
技术标签:
【中文标题】避免多次创建 SimpleJdbcCall【英文标题】:Avoid Creating SimpleJdbcCall multiple times 【发布时间】:2021-01-09 22:28:41 【问题描述】:我必须在 Service layer 调用 callDb 大约 20,000。下面是它需要 30 分钟,因为我正在创建 每次调用 SimpleJdbcCall 对象..如何避免为每次调用创建 SimpleJdbcCall 对象。
@Repository
public class JdbcActorDao
void callDb ( )
SimpleJdbcCall simpleJdbcCall =
new SimpleJdbcCall(jdbcTemplate)
.withProcedureName("read_actor")
.withoutProcedureColumnMetaDataAccess()
.useInParameterNames("in_id")
.declareParameters(
new SqlParameter("in_id", Types.NUMERIC),
new SqlOutParameter("out_first_name", Types.VARCHAR),
new SqlOutParameter("out_last_name", Types.VARCHAR),
new SqlOutParameter("out_birth_date", Types.DATE)
);
simpleJdbcCall.execute(...) ;
【问题讨论】:
【参考方案1】:您可以将simpleJdbcCall作为字段添加到类中,并添加一个@PostConstruct方法来初始化SimpleJdbcCall。
这样
private SimpleJdbcCall simpleJdbcCall;
@PostConstruct
public void init()
simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate)
.withProcedureName("read_actor")
.withoutProcedureColumnMetaDataAccess()
.useInParameterNames("in_id")
.declareParameters(
new SqlParameter("in_id", Types.NUMERIC),
new SqlOutParameter("out_first_name", Types.VARCHAR),
new SqlOutParameter("out_last_name", Types.VARCHAR),
new SqlOutParameter("out_birth_date", Types.DATE)
);
public void performCall()
simpleJdbcCall.execute(...) ;
【讨论】:
太棒了。将您的答案标记为正确。一旦我测试它以上是关于避免多次创建 SimpleJdbcCall的主要内容,如果未能解决你的问题,请参考以下文章