`
langgufu
  • 浏览: 2305788 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Spring Boot 使用JdbcTemplate(转)

 
阅读更多

原文地址:http://blog.csdn.net/liuziyingbeidou/article/details/53561792

此处主要针对execute和batchUpdate中部分内容说明。 
  针对大数据量的插入推荐使用批量插入以便提高性能,经过实战说明JdbcTemplate批量插入效率高于循环单条插入。 
  JdbcTemplate继承JdbcAccessor类与JdbcOperations接口;其中JdbcAccessor类设置数据源,JdbcOperations定义方法JdbcTemplate来实现。

1. JdbcTemplate主要提供以下五类方法:

  • execute方法:可以用于执行任何SQL语句,一般用于执行DDL语句;

  • update方法及batchUpdate方法:update方法用于执行新增、修改、删除等语句;batchUpdate方法用于执行批处理相关语句;

  • query方法及queryForXXX方法:用于执行查询相关语句;

  • call方法:用于执行存储过程、函数相关语句。

2. maven中添加相应模块

<!--mysql 驱动-->
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
  <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.40</version>
  </dependency>
  <!--支持jdbc-->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
  </dependency>
#mysql数据源
spring.datasource.url=jdbc:mysql://192.168.*.*:3306/venus_spb?useUnicode=true&amp;characterEncoding=UTF-8
spring.datasource.username=****
spring.datasource.password=*****
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

4. Service类中注入JdbcTemplate实例

@Service
public class UserServiceImpl implements UserService {

    //JdbcTemplate注入实例
    @Resource
    private JdbcTemplate jdbcTemplate;
}

5. 实例说明

5.1 查询返回实体List
@Override
public List<UserDto> queryUsers() {
   RowMapper<UserDto> rm = BeanPropertyRowMapper.newInstance(UserDto.class);
   List<UserDto> userList = jdbcTemplate.query("select * from vns_user",rm);
   //userList = jdbcTemplate.queryForList("select * from vns_user",UserDto.class);
   return userList;
}

特别说明:使用queryForList查询出现异常,是因为UserDto.class自动编入一列导致与实际列数不符

{
  "timestamp": 1481377345590,
  "status": 500,
  "error": "Internal Server Error",
  "exception": "org.springframework.jdbc.IncorrectResultSetColumnCountException",
  "message": "Incorrect column count: expected 1, actual 4",
  "path": "/venus/user/getUserList"
}
5.2 批量插入

方法1:

@Override
@Transactional
public Integer batchInsertUsers(List<UserDto> listUser) {
    String sql = "insert vns_user(u_code,u_name,u_age) values(?,?,?)";
    jdbcTemplate.batchUpdate(sql,new BatchPreparedStatementSetter()
    {
        public void setValues(PreparedStatement ps, int i)throws SQLException
        {
            String code = listUser.get(i).getuCode();
            String name=listUser.get(i).getuName();
            int age=listUser.get(i).getuAge();
            ps.setString(1,code);
            ps.setString(2, name);
            ps.setInt(3, age);
        }
        public int getBatchSize()
        {
            return listUser.size();
        }
    });
    return 0;
}

方法2:

@Override
@Transactional
public Integer batchInsertUsers(List<UserDto> listUser) {
    String sql = "insert vns_user(u_code,u_name,u_age) values(?,?,?)";
    jdbcTemplate.batchUpdate(sql,setParameters(listUser));
    return 0;
}

/**
 * 设置参预置数
 * @param listUser
 * @return
 */
private List<Object[]> setParameters(List<UserDto> listUser){
    List<Object[]> parameters = new ArrayList<Object[]>();
    for (UserDto u : listUser) {
        parameters.add(new Object[] { u.getuCode(),u.getuName(),u.getuAge()});
    }
    return parameters;
}
分享到:
评论

相关推荐

    简单介绍如何使用Spring Boot使用JdbcTemplate与MySQL进行数据库操作

    在本文中,我们将深入探讨如何使用Spring Boot集成JdbcTemplate与MySQL数据库进行数据操作。Spring Boot以其简化配置和快速启动的特点,已经成为Java开发者的首选框架。而JdbcTemplate是Spring框架的一部分,它提供...

    Spring boot +jdbctemplate

    在"Spring Boot +JdbcTemplate"的主题下,我们将深入探讨这个组合在构建现代Java Web应用中的作用。 1. **Spring Boot核心特性** - **自动配置**:Spring Boot通过`@EnableAutoConfiguration`注解自动识别并配置...

    配制Spring事务和JdbcTemplate使用

    配制Spring事务和JdbcTemplate使用 配制Spring事务和JdbcTemplate使用

    Spring Boot多数据源(JdbcTemplate)配置与使用

    在本教程中,我们将深入探讨如何在Spring Boot项目中配置和使用多数据源以及JdbcTemplate。 首先,让我们了解什么是`JdbcTemplate`。它是Spring提供的一种模板类,用于执行SQL语句,通过回调机制将结果转换为Java...

    Spring boot连接oracle数据库JDBC配置步骤

    例如,可以使用 Spring Boot 的 `JdbcTemplate` 来执行一个简单的查询操作: ```java @RestController public class DatabaseController { @Autowired private JdbcTemplate jdbcTemplate; @GetMapping("/test...

    Spring boot 使用JdbcTemplate访问数据库

    在 Spring Boot 中使用 JdbcTemplate 访问数据库,是一种常见且简便的方式,特别适合那些需要对数据库进行基础操作的应用。 JdbcTemplate 是 Spring Framework 提供的一个模板类,它对 JDBC API 进行了封装,使得...

    使用Spring的JdbcTemplate调用Oracle的存储过程

    使用Spring的JdbcTemplate调用Oracle的存储过程

    Spring Boot 与 Kotlin 使用JdbcTemplate连接MySQL数据库的方法

    接下来,我们将详细讨论如何在Spring Boot项目中配置数据源,并使用JdbcTemplate进行数据访问。 首先,我们需要在`build.gradle`文件中引入必要的依赖。对于Spring Boot,添加`spring-boot-starter-jdbc`以包含...

    从零开始学Spring Boot

    1.6 Spring Boot使用别的json解析框架 1.7 全局异常捕捉 1.8 Spring Boot datasource - mysql 1.9 JPA - Hibernate 1.10 使用JPA保存数据 1.11 使用JdbcTemplate 1.12 Spring Boot修改端口号 1.13 Spring Boot配置...

    Spring Boot中的JdbcTemplate与MySQL集成

    本文将深入探讨如何在Spring Boot项目中配置和使用JdbcTemplate以及与MySQL数据库的整合。 首先,我们需要在项目的`pom.xml`或`build.gradle`文件中添加相应的依赖。对于Maven用户,添加如下依赖: ```xml ...

    5分钟快速学会spring boot整合JdbcTemplate的方法

    【Spring Boot 整合 JdbcTemplate 知识点详解】 一、Spring Boot 框架简介 Spring Boot 是由 Pivotal 团队开发的 Java 应用程序框架,旨在简化新 Spring 应用的初始化和开发流程。它通过提供默认配置来消除冗余的...

    9. 使用JdbcTemplate【从零开始学Spring Boot】

    在本节中,我们将深入探讨如何在Spring Boot项目中使用JdbcTemplate进行数据库操作。JdbcTemplate是Spring框架提供的一种简化数据库访问的工具,它通过提供一套模板方法,使得开发者可以更安全、更方便地执行SQL语句...

    Spring Boot 学习笔记完整教程.pdf

    - 数据库操作:Spring Boot提供了多种数据库操作方式,如使用JPA连接数据库,配置JPA,整合JPA保存数据,使用JdbcTemplate保存数据等。 - 配置应用:Spring Boot允许用户进行静态资源处理、任务调度、自定义配置文件...

    Spring Boot2企业应用实战

    例如,使用`spring-boot-starter-web`起步依赖,就能自动配置Tomcat作为内嵌服务器,无需手动设置。 2. **自动配置**:Spring Boot通过`@EnableAutoConfiguration`注解实现自动配置。它会根据类路径中存在的jar包来...

    详解spring boot中使用JdbcTemplate

    首先,为了在Spring Boot中使用JdbcTemplate,我们需要引入`spring-boot-starter-jdbc`模块。在`pom.xml`中添加以下依赖: ```xml &lt;groupId&gt;org.springframework.boot &lt;artifactId&gt;spring-boot-starter-jdbc ``...

    Spring Boot实战与原理分析视频课程包含14-18

    --演示了如何在Spring Boot里面使用日志配置,以及logback,log4j2等日志的使用 23 Spring Boot 监控和度量47:09 --Spring Boot内置的监控点、自定义的监控状况检查、自定义度量统计,输出等等 24 Spring Boot ...

    JavaEE颠覆者spring-boot实战源码.zip

    例如,如果你的项目包含了JDBC的依赖,Spring Boot就会自动配置DataSource和JdbcTemplate。 3. **起步依赖(Starters)**: Starters是一系列的Maven或Gradle模块,用于简化构建过程。例如,`spring-boot-starter-...

    SQL注入原理以及Spring Boot如何防止SQL注入(含详细示例代码)

    在Spring Boot环境中,我们可以利用Spring提供的JdbcTemplate和Spring Data JPA来安全地进行数据库交互: 1. 使用JdbcTemplate:JdbcTemplate提供了一种安全的方式来执行SQL查询,通过预编译的SQL语句和...

Global site tag (gtag.js) - Google Analytics