JdbcTemplate template = new JdbcTemplate(yourDataSource);
template.update(
new PreparedStatementCreator() {
public PreparedStatement createPreparedStatement(Connection connection)
throws SQLException {
PreparedStatement statement = connection.prepareStatement(ourInsertQuery);
//statement.setLong(1, beginning); set parameters you need in your insert
return statement;
}
});
Map<String, Object> params = new HashMap<>();
params.put("var1",value1);
params.put("var2",value2);
namedJdbcTemplate.update(
"INSERT INTO schema.tableName (column1, column2) VALUES (:var1, :var2)",
params
);
# 3 楼答案
如果您计划在多个位置使用JdbcTemplate,那么最好为其创建一个Springbean
使用Java配置可以:
@Configuration
public class DBConfig {
@Bean
public DataSource dataSource() {
//create a data source
}
@Bean
public JdbcTemplate jdbcTemplate() {
return new JdbcTemplate(dataSource());
}
@Bean
public TransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
}
然后,使用该JdbcTemplate的存储库可以是:
@Repository
public class JdbcSomeRepository implements SomeRepository {
private final JdbcTemplate jdbcTemplate ;
@Autowired
public JdbcSomeRepository(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
@Override
@Transactional
public int someUpdate(SomeType someValue, SomeOtherType someOtherValue) {
return jdbcTemplate.update("INSERT INTO SomeTable(column1, column2) VALUES(?,?)", someValue, someOtherValue)
}
}
@Repository
public class JdbcRepository {
private final JdbcTemplate jdbcTemplate;
@Autowired
public DynamicRepository(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void insert() {
jdbcTemplate.update("INSERT INTO BOOK (name, description) VALUES ('book name', 'book description')");
}
}
{}的示例:
#Basic Spring Boot Config for Oracle
spring.datasource.url=jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=YourHostIP)(PORT=YourPort))(CONNECT_DATA=(SERVER=dedicated)(SERVICE_NAME=YourServiceName)))
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
#hibernate config
spring.jpa.database-platform=org.hibernate.dialect.Oracle10gDialect
# 1 楼答案
你需要一个
datasource
来处理JdbcTemplate
# 2 楼答案
您也可以使用^{} (当您有许多参数时,命名可能很有用)
# 3 楼答案
如果您计划在多个位置使用JdbcTemplate,那么最好为其创建一个Springbean
使用Java配置可以:
然后,使用该JdbcTemplate的存储库可以是:
我使用的JdbcTemplate中的更新方法可以在here中找到
# 4 楼答案
如果使用spring boot,则不需要创建数据源类,只需在
application.properties
中指定数据url/用户名/密码/驱动程序,然后就可以简单地@Autowired
它{}的示例:
然后在^{中添加驱动程序和连接池依赖项
有关更多详细信息,请参见official doc
# 5 楼答案
我们可以将update用于insert和update/delte
# 6 楼答案
使用^{} 方法:
或者^{} ,如果需要手动将参数映射到SQL类型: