transacciones template rowmapper example ejemplos ejemplo datos con java spring jdbctemplate

java - rowmapper - Cómo ejecutar la instrucción INSERT utilizando la clase JdbcTemplate de Spring Framework



transacciones con jdbctemplate (4)

En Spring, ¿cómo puedo insertar datos en la tabla utilizando JdbcTemplate ? ¿Alguien puede proporcionarme una muestra de código para hacer esto?


Necesitará una fuente de datos para trabajar con 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; } });


Si planea usar JdbcTemplate en varias ubicaciones, sería una buena idea crear un Spring Bean para él.

Usando Java Config sería:

@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()); } }

Entonces, un repositorio que usa esa JdbcTemplate podría ser:

@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) } }

El método de actualización de JdbcTemplate que he usado se puede encontrar here .


Si usa Spring-Boot, no necesita crear una clase DataSource, solo especifique la url de datos / nombre de usuario / contraseña / controlador en application.properties , entonces puede simplemente @Autowired .

@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'')"); } }

Ejemplo de application.properties :

#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

Luego agregue las dependencias del controlador y del grupo de conexiones en pom.xml

<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc7</artifactId> <version>12.1.0.1</version> </dependency> <!-- HikariCP connection pool --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>2.6.0</version> </dependency>

Consulte el documento oficial para más detalles.