首页 > 其他分享 >JdbcTemplate

JdbcTemplate

时间:2024-07-31 11:09:02浏览次数:14  
标签:Java rs book JdbcTemplate RowMapper jdbcTemplate

JdbcTemplate 是 Spring 框架提供的一个用于简化 JDBC 操作的类。它处理了资源的创建和释放,使得开发者能够更专注于 SQL 语句本身和结果的处理。JdbcTemplate 提供了大量的方法,用于执行各种类型的 SQL 语句,包括查询、更新、批处理、调用存储过程等。

  1. 导入jar包
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

    <!--    <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>-->

如果导入了mybatis-plus-boot-starter,在该包内也包括spring-boot-starter-jdbc,所以我可以注释.
2. 查询

@Test
    void testJdbcTemplate(@Autowired JdbcTemplate jdbcTemplate) {
        String sql = "select * from tbl_book where id =3";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        System.out.println("哈哈" + maps);
    }
  1. 实体类
package com.atheima.domain;

import lombok.Data;

@Data
public class Book {
    private Integer id;
    private String type;
    private String name;
    private String description;
}
  1. 查询方法2
    @Test
    void testJdbcTemplate(@Autowired JdbcTemplate jdbcTemplate) {
        String sql = "select * from tbl_book where id =3";
/*        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        System.out.println("哈哈" + maps);*/


        RowMapper<Book> rm = new RowMapper<Book>() {
            @Override
            public Book mapRow(ResultSet rs, int rowNum) throws SQLException {
                Book book = new Book();
                book.setId(rs.getInt("id"));
                book.setName(rs.getString("name"));
                book.setType(rs.getString("type"));
                book.setDescription(rs.getString("description"));
                return book;
            }
        };
        List<Book> queryList = jdbcTemplate.query(sql, rm);
        System.out.println(queryList);
    }

RowMapper是Spring JDBC模板中用于将数据库查询结果集的每一行数据映射到用户自定义的Java对象的一个接口。它大大简化了JDBC操作,使得开发者可以将更多的精力放在业务逻辑上,而不是繁琐的数据转换上。
RowMapper是一个接口,它包含一个mapRow方法,该方法的签名如下:

Object mapRow(ResultSet rs, int rowNum) throws SQLException;
ResultSet rs:当前行的数据。
int rowNum:当前行的行号(从1开始)。
返回值:一个Java对象,表示当前行的数据。

使用JdbcTemplate的query方法执行SQL查询,并将查询结果集传递给UserRowMapper进行处理。最终,方法返回一个包含所有用户信息的List

  • 注意事项
    1.确保Java对象的属性名与数据库表的列名相匹配,或者提供自定义的映射规则。
    如果数据库列名和Java对象属性名之间存在不匹配的情况,可以使用SQL查询中的别名来解决。
  1. 确保Java对象具有无参构造函数,因为RowMapper会使用它来创建对象实例。
  2. 确保Java对象的属性具有公共的getter和setter方法,因为RowMapper会使用它们来访问和设置属性值。

标签:Java,rs,book,JdbcTemplate,RowMapper,jdbcTemplate
From: https://www.cnblogs.com/DuWenjie/p/18334192

相关文章

  • SpringBoot使用jdbcTemplate连接人大金仓按月备份表
    方式一:采用SELECT*INTOFROM复制表数据以及结构到新表,再清空原表并重置序列代码如下:点击查看代码privatevoidpnsDataCopy(){log.info("{}===>表开始复制",PNS_TABLE);longl=System.currentTimeMillis();TransactionStatustransactionS......
  • 9.2JavaEE——JDBCTemplate的常用方法(一)excute()方法
    execute()方法用于执行SQL语句,其语法格式如下:jdTemplate.execute("SQL语句");下面以创建数据表的SQL语句为例,来演示excute()方法的使用,具体步骤如下。1、创建数据库        在MySQL中,创建一个名为spring的数据库。 mysql>createdatabasespring;QueryOK,1......
  • 传统后端SQL数据层替代解决方案: 内置数据源+JdbcTemplate+H2数据库 详解
    内置数据源我们回顾一下druid数据源的配置方式通过type属性指定数据源的类型导入依赖starter就使用了spring的自动装配功能格式二是在引入druid的依赖的基础上进行的一种配置方式Tomcat内部也可以进行数据源的配置轻量级中最快的数据源对象我们切换德鲁伊连接池......
  • 帮助理解 JdbcTemplate 的使用
    什么是 JdbcTemplate?JdbcTemplate 是Spring框架中的一个类,用于简化与数据库的交互。它帮助我们处理很多繁琐的任务,例如打开和关闭数据库连接、处理SQL语句、处理异常等。使用 JdbcTemplate,你可以更轻松地执行数据库操作,比如查询、插入、更新和删除数据。1.配置 JdbcTe......
  • 为 Spring Boot 2.6.2 JdbcTemplate 添加新数据源
    我有一个现有的SpringBoot2.6.2微服务,我们希望将调用添加到一个新的数据源。该服务将部署到使用Java8的Openliberty23.0.0.10。我创建了一个新的DAO:publicclassiSeriesDatabaseDao{@AutowiredprivateJdbcTemplatejdbcTemplate;publicStr......
  • Spring6 的JdbcTemplate的JDBC模板类的详细使用说明
    1.Spring6的JdbcTemplate的JDBC模板类的详细使用说明@目录1.Spring6的JdbcTemplate的JDBC模板类的详细使用说明每博一文案2.环境准备3.数据准备4.开始4.1从数据表中插入(添加)数据4.2从数据表中修改数据4.3从数据表中删除数据4.4从数据表中查询一个对象4.5从数据表中......
  • Spring JdbcTemplate+Druid数据源+FreeMarker 开发代码生成器
    虽然在这个时代,几乎所有成熟的开发框架都自带代码生成器,但有时候我们难免会遇到没有代码生成器的开发框架,这个时候,自己手中有一套代码生成器,把模版文件调整一下立马就能用,这就比较惬意了。这里讲一下如何利用SpringJdbcTemplate+Druid数据源+FreeMarker开发一套代码生成器。......
  • Spring系列之(九)Spring中的JdbcTemplate
    Spring中的JdbcTemplate持久层总图1.JdbcTemplate相关的jar包spring-jdbc-5.2.11.RELEASE.jar2.JdbcTemplate的学习路径JdbcTemplate的作用用于和数据库交互,实现对表的CRUD操作如何创建JdbcTemplate对象对象中的常用方法方法功能voidsetDataSource(DataS......
  • JdbcTemplate 自定义返回的结果集字段和实体类映射
    废话不多:抄袭代码packagecom.webank.wedatasphere.qualitis.handler;importcom.webank.wedatasphere.qualitis.response.Grid;importcom.webank.wedatasphere.qualitis.response.SelectRuleResponse;importorg.springframework.beans.factory.annotation.Autowired;impo......
  • JdbcTemplate.queryForList()查询结果如何对Date等日期类型进行格式化?
    1.情景展示在实际开发中,我们往往会遇到这样的需求:需要对多个数据库进行操作,这用mybatis等框架来进行操作显然不合理,也无法满足多样化的需求。通过java来进行JDBC操作无疑是最好的选择。如下图所示,通过org.springframework.jdbc.core.JdbcTemplate.queryForList()方法查询到......