Spring Boot 集成 Spring JDBC

Spring JDBC模块负责访问操作数据库,在中小型项目中使用Spring框架自己的JdbcTemplate方便快捷,而且稍加封装完全不输MyBatis框架。

Spring 生态中的 Spring Data JDBC 和 Spring Data JPA 就是对原生JDBC的加强,它提供查询数据库并映射成实体的功能,和MyBatis有很多相似之处。关于 Spring Data 相关的知识会另起新篇。

  • 引入Maven依赖

集成Spring JDBC只需在pom.xml中引入:


    org.springframework.boot
    spring-boot-starter-jdbc
    ${version}

jdbc连接池和数据库驱动:



    com.zaxxer
    HikariCP
    ${version}



    mysql
    mysql-connector-java
    ${version}
  • 配置数据源

编辑 application.yml 文件

spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver # 数据库连接驱动
    username: ${MYSQL_USERNAME:engrz} # 数据库连接用户名
    password: ${MYSQL_PASSWORD:passwd2021} # 数据库连接密码
    url: jdbc:mysql://${MYSQL_HOST:mysqlhost}:${MYSQL_PORT:3306}/database?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&allow # 数据库连接url

Spring Boot支持hikari,dbcp2,druid,设置连接池其他参数可参考 Spring Boot Data Properties 相关属性。

  • 使用JdbcTemplate

配置好数据源即可直接在项目中使用JdbcTemplate,Spring会自动注入。

@Autowired
private JdbcTemplate jdbcTemplate;

JdbcTemplate常用方法

int update(String sql)
执行新增或更新,返回影响记录数

int[] batchUpdate(String… sql)
批量执行新增或更新,返回影响记录数

void execute(String sql)
执行一条sql

List query(String sql, RowMapper rowMapper)
查询并返回结果集合。RowMapper是指映射的实体类,根据列名找到属性名并赋值

List> queryForList(String sql)
查询并返回结果集合,将每一条数据放在一个Map中

Map queryForMap(String sql)
将查询结果放在Map中,只适用于返回一条数据的情况

T queryForObject(String sql, Class requiredType)
将查询结果放在对象中,只适用于返回一条数据的情况

SqlRowSet queryForRowSet(String sql)
查询返回RowSet对象,一般用于封装通用方法,自定义动态返回映射对象。

以上都有重载方法,适用于不同场景查询,使用简单就不详述。更多方法和说明可以查看文档: JdbcTemplate


除非注明,否则均为攻城狮·正原创文章,转载请注明出处。

本文链接:https://engr-z.com/97.html

你可能感兴趣的:(spring,boot,java,java,spring,boot,spring)