前言
很多人知道Mybatis,知道Jpa,但是对spring-data-jdbc可能了解的少之又少。注意我们这里说的是data-jdbc,而不是普通的jdbc。它拥有了类似jpa的一些特性,比如能够根据方法名推导出sql,基本的CRUD等,也拥有了写原生sql的能力。最为关键的是,它非常的清爽,不需要依赖hibernte或者jpa。
一、使用https://start.spring.io/ ,建立一个demo
二、使用 Java 配置的 Spring Data JDBC
// @EnableJdbcRepositories 为接口Repository 创建实现
//AbstractJdbcConfiguration 提供 Spring Data JDBC 所需的各种默认 bean
@Configuration
@EnableJdbcRepositories(basePackages = "com.example.springdatajdbctest")
public class ApplicationConfiguration extends AbstractJdbcConfiguration {
/**
* 创建DataSource,使用springboot的默认的连接池,当然你也可以使用druid
* ConfigurationProperties注解,去配置项中找spring.datasource开头的配置项,来创建DataSource
*/
@Bean
@ConfigurationProperties(prefix="spring.datasource" )
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
/**
* 官方使用内置的数据库类型
@Bean
public DataSource dataSource() {
EmbeddedDatabaseBuilder builder = new EmbeddedDatabaseBuilder();
return builder.setType(EmbeddedDatabaseType.H2).build();
}
*/
/**
* NamedParameterJdbcOperations是Spring Data JDBC 用来访问数据库的
* @param dataSource
* @return
*/
@Bean
NamedParameterJdbcOperations namedParameterJdbcOperations(DataSource dataSource) {
return new NamedParameterJdbcTemplate(dataSource);
}
/**
* 提供的事务管理
* @param dataSource
* @return
*/
@Bean
TransactionManager transactionManager(DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
对应的application.properties内容如下:
spring.datasource.jdbc-url = jdbc:mysql://127.0.0.1/sss?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useAffectedRows=true
spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
spring.datasource.username = root
spring.datasource.password = ****
三、数据库建表、建实体类
create ta