SpringBoot中编码方式配置数据源

SpringBoot 提供了一套自动扫描数据源的的算法,使得我们即使不配置数据源,也可以获得一个默认的数据源(通常是HikariCP、Apache Tomcat或Commons DBCP,取决于类路径下有哪个具体的实现),那么我们如何自定义一个数据源呢?

.

第一步:在springboot 初始环境下,引入依赖( 为了演示方便,我们直接用基于内存的关系型数据库h2 ,这样我们可以免去安装mysql的工作,如果要用mysql,则需要将h2 替换成对应的数据库驱动)

引入依赖

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>1.4.200</version>
      <scope>runtime</scope>
    </dependency>

第二步:编写配置文件,改变springboot的默认行为,使用我们自己的数据源 h2

@Configuration
public classDataSourceConfig{
​
    @Bean    
    public DataSource  getDataSource(){
        DataSourceBuilder dataSourceBuilder = DataSourceBuilder.create();
        dataSourceBuilder.driverClassName("org.h2.Driver");
        dataSourceBuilder.url("jdbc:h2:mem:test");
        dataSourceBuilder.username("SA");
        dataSourceBuilder.password("");
        return dataSourceBuilder.build();
    }}

我们使用 DataSourceBuilder 可以更方便的创建数据源,很多默认值已经配置好,只需要传几个核心的参数就能创建好我们自定义的数据源。

第三步:上面两步就配置好了,下面我们来测试一下
创建一个基本的User 实体

@Entity
@Table(name = "users")
public class User{@Id    
    @GeneratedValue(strategy = GenerationType.AUTO)    
    private long id;
    private String name;
    private String email;//  这里自行把get、set,toString 方法加上
}

第四步:创建一个Repository 类来对数据进行操作

@Repository
public interface UserRepository extends CrudRepository<User, Long> {}

第五步:运行主类

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;@SpringBootApplication
public class Application {public static void main(String[] args) {
​
        SpringApplication.run( Application.class, args );}@Bean
    public CommandLineRunner run(UserRepository userRepository) throws Exception {return (String[] args) -> {
​
            User user1=new User( "zhangsan", "zhangsan@email.com" );
            User user2=new User( "lisi", "lisi@email.com" );
            userRepository.save( user1 );
            userRepository.save( user2 );
            userRepository.findAll().forEach( user -> System.out.println( user ) );};}
}

第六步:结果如图所示,正常输出

自定义数据源正常工作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值