use*_*999 41 java spring jdbctemplate
在Spring中,如何使用JdbcTemplate在表中插入数据.任何人都可以为我提供代码示例.
use*_*153 44
使用jdbcTemplate.update(String sql, Object... args)
方法:
jdbcTemplate.update(
"INSERT INTO schema.tableName (column1, column2) VALUES (?, ?)",
var1, var2
);
Run Code Online (Sandbox Code Playgroud)
或者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}
);
Run Code Online (Sandbox Code Playgroud)
nai*_*jon 12
您也可以使用NamedParameterJdbcTemplate
(当您有很多参数时命名可能很有用)
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
);
Run Code Online (Sandbox Code Playgroud)
如果您计划在多个位置使用JdbcTemplate,那么为它创建一个Spring Bean是个好主意.
使用Java Config将是:
@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());
}
}
Run Code Online (Sandbox Code Playgroud)
然后,使用该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)
}
}
Run Code Online (Sandbox Code Playgroud)
我在这里可以找到JdbcTemplate的更新方法.
您需要一个datasource
用于使用JdbcTemplate
.
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;
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
87761 次 |
最近记录: |