摘要:JdbcTemplate方式:在pom.xml文件中添加JdbcTemplate的依赖:xmlCopy code org.springframework.boot sprin
在Spring Boot中,可以使用JdbcTemplate或者Spring Data JPA进行批量入库操作。以下是具体的实现步骤:
JdbcTemplate方式:在pom.xml文件中添加JdbcTemplate的依赖:xmlCopy code org.springframework.boot spring-boot-starter-jdbc在application.yml或application.properties中配置数据库连接信息。创建一个JdbcTemplate的Bean:javaCopy code@Configurationpublic class JdbcConfig { @Autowired private DataSource dataSource; @Bean public JdbcTemplate jdbcTemplate { return new JdbcTemplate(dataSource); }}编写批量插入数据的方法:javaCopy code@Componentpublic class UserRepository { @Autowired private JdbcTemplate jdbcTemplate; public void batchInsert(List users) { String sql = "INSERT INTO user(name,age) VALUES(?,?)"; jdbcTemplate.batchUpdate(sql, new BatchPreparedStatementSetter { @Override public void setValues(PreparedStatement ps, int i) throws SQLException { ps.setString(1, users.get(i).getName); ps.setInt(2, users.get(i).getAge); } @Override public int getBatchSize { return users.size; } }); }}在上述代码中,我们首先注入了JdbcTemplate的Bean。
然后,我们编写了一个batchInsert方法,该方法接收一个User列表作为参数,将列表中的所有User对象批量插入到数据库中。
在方法中,我们使用了JdbcTemplate的batchUpdate方法来执行批量插入操作。
该方法需要传递两个参数:SQL语句和BatchPreparedStatementSetter对象。
BatchPreparedStatementSetter对象需要实现两个方法:setValues和getBatchSize。其中,setValues方法用于设置预编译的语句中的参数,getBatchSize方法用于指定批量处理的数量。 2. Spring Data JPA方式:
在pom.xml文件中添加Spring Data JPA的依赖:xmlCopy code org.springframework.boot spring-boot-starter-data-jpa在application.yml或application.properties中配置数据库连接信息。创建一个User实体类:javaCopy code@Entity@Table(name = "user")public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; // getter和setter方法省略}编写一个UserRepository接口:javaCopy codepublic interface UserRepository extends JpaRepository { @Modifying @Transactional @Query(value = "INSERT INTO user(name,age) VALUES(:name,:age)", nativeQuery = true) void batchInsert(@Param("name") List name, @Param("age") List age);}在上述代码中,我们首先定义了一个User实体类,使用了JPA注解来映射User对象和数据库表。然后,我们创建了一个UserRepository接口,该接口继承了JpaRepository接口,从而可以使用Spring Data JPA提供的各种方法来操作数据库。在接口中,我们定义了一个batchInsert方法,该方法使用了@Modifying、@Transactional和@Query注解。@Modifying注解用于标识该方法会修改数据库的内容;@Transactional注解用于开启事务支持;@Query注解用于指定SQL语句和参数列表。需要注意的是,我们使用了nativeQuery = true来指定该SQL语句是原生SQL语句。 以上是在Spring Boot中批量入库的两种方式。需要根据实际情况选择合适的方式。如果需要更加灵活地操作数据库,可以使用JdbcTemplate;如果只需要进行简单的增删改查操作,可以使用Spring Data JPA。
以上仅代表我个人的一点浅见,由于我在这方面的知识和经验有限,可能说得不够专业或者全面,还请大家多多包涵。
来源:洪生鹏