Spring JDBC에서 현재 Connection 개체를 가져오는 방법
Oracle 데이터베이스의 현재 Connection 개체를 가져오려면 어떻게 해야 합니까?Spring 3.0.5의 JDBC 모듈을 사용하고 있습니다.
를 입수하다Connection
에서DataSource
콩.
spring 의존성 주입을 사용하여 콩에 주입하거나 dataSource에 액세스하여ApplicationContext
정적으로:
DataSource ds = (DataSource)ApplicationContextProvider.getApplicationContext().getBean("dataSource");
Connection c = ds.getConnection();
Just an Info : Spring JDBC Template를 사용하고 있습니다.이 템플릿은 현재 접속 오브젝트를 보유하고 있으며 다음과 같이 수신할 수 있습니다.
Connection con;
con = getJdbcTemplate().getDataSource().getConnection();
사용하다DataSourceUtils.getConnection()
.
현재 트랜잭션과 관련된 연결이 있는 경우 해당 연결을 반환합니다.
이 질문이 처음 게시되었을 때 이 방법을 사용할 수 있었는지 모르겠지만, 최신 버전의 Spring에서 이 방법을 사용하는 것이 선호되는 것 같습니다.JdbcTemplate
그리고.PreparedStatementCreator
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jdbc/core/JdbcTemplate.html#query-org.springframework.jdbc.core.PreparedStatementCreator-org.springframework.jdbc.core.PreparedStatementSetter-org.springframework.jdbc.core.ResultSetExtractor- 또는 기타 항목을 참조하십시오.query
필요한 방법PreparedStatementCreator
첫 번째 파라미터로서
jdbcTemplate.query(con -> {
// add required logic here
return con.prepareStatement("sql");
}, rs -> {
//process row
});
이것은, 다른 회답보다 우위).DataSourceUtils.getConnection()
또는jdbcTemplate.getDataSource().getConnection()
새로운 접속이 할당되어 있지 않기 때문에, 다른 접속을 호출하는 것과 같은 접속 관리를 사용합니다.jdbcTemplate
메서드의 쿼리따라서 스프링이 연결을 처리하므로 연결을 닫거나 해제할 염려도 없습니다.
언급URL : https://stackoverflow.com/questions/8428235/how-to-get-current-connection-object-in-spring-jdbc
'source' 카테고리의 다른 글
Wordpress 블로그에서 페이지가 localhost로 리디렉션되는 이유는 무엇입니까? (0) | 2023.02.10 |
---|---|
Flyway: 스키마 기록 테이블이 없는 "공개" 스키마를 찾았습니다!baseline() 사용 - 빈 데이터베이스에서 (0) | 2023.02.10 |
시도된 가져오기 오류: 'useHistory'가 'react-router-dom'에서 내보내지지 않았습니다. (0) | 2023.02.10 |
logback.xml 응용 프로그램 속성 액세스 (0) | 2023.02.10 |
componentWillUnmount 메서드에서 모든 구독 및 비동기 취소 방법 (0) | 2023.02.10 |