Spring では、 JdbcTemplateを使用してテーブルにデータを挿入するにはどうすればよいですか。誰でもこれを行うためのコードサンプルを提供してもらえますか?
149832 次
6 に答える
79
使用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}
);
于 2014-05-27T11:55:10.067 に答える
12
複数の場所で 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());
}
}
次に、その 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 の update メソッドは、こちらにあります。
于 2014-05-27T12:11:40.073 に答える
3
を使用するには が必要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;
}
});
于 2011-11-14T22:48:49.823 に答える