Spring JDBC模块负责访问操作数据库,在中小型项目中使用Spring框架自己的JdbcTemplate方便快捷,而且稍加封装完全不输MyBatis框架。
Spring 生态中的 Spring Data JDBC 和 Spring Data JPA 就是对原生JDBC的加强,它提供查询数据库并映射成实体的功能,和MyBatis有很多相似之处。关于 Spring Data 相关的知识会另起新篇。
- 引入Maven依赖
集成Spring JDBC只需在pom.xml中引入:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>${version}</version>
</dependency>
jdbc连接池和数据库驱动:
<!-- hikari jdbc连接池 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${version}</version>
</dependency>
<!-- mysql连接驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${version}</version>
</dependency>
- 配置数据源
编辑 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
除非注明,否则均为”攻城狮-正“原创文章,请注明出处。
发表回复