如何使用 Spring Framework 中的 JdbcTemplate 类执行 INSERT 语句
2022-08-31 14:12:39
在春季,如何使用JdbcTemplate在表中插入数据。任何人都可以为我提供执行此操作的代码示例。
在春季,如何使用JdbcTemplate在表中插入数据。任何人都可以为我提供执行此操作的代码示例。
Use jdbcTemplate.update(String sql, Object...args)
方法:
jdbcTemplate.update(
"INSERT INTO schema.tableName (column1, column2) VALUES (?, ?)",
var1, var2
);
或 jdbcTemplate.update(String sql, Object[] args, int[] argTypes),
如果您需要手动将参数映射到 SQL 类型:
jdbcTemplate.update(
"INSERT INTO schema.tableName (column1, column2) VALUES (?, ?)",
new Object[]{var1, var2}, new Object[]{Types.TYPE_OF_VAR1, Types.TYPE_OF_VAR2}
);
如果您计划在多个位置使用JdbcTemplate,那么为它创建一个Spring Bean将是一个好主意。
使用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)
}
}
我使用的JdbcTemplate中的更新方法可以在这里找到。