idea下springboot框架使用hibernate和jpa連接池配置為hikari的方法


創建工程的時候,選這么幾個項

 spring data jpa里邊就默認使用了hikari,可以點進去打開看一下

 

 可以看到這是基於hibernate的實現

 

繼續往下翻

 有一項是,再點進去

 

看到了吧

 

 

 好了,默認就是調用hikari的

只需要在application.properties中進行一些配置就行了

spring.jpa.hibernate.ddl-auto=update
spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://ip:3306/vser_debug?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.username=name
spring.datasource.password=pwd
spring.jpa.open-in-view=false
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true

spring.datasource.type=com.zaxxer.hikari.HikariDataSource
## 最小連接池數量
spring.datasource.hikari.minimum-idle=5
## 池中最大連接數
spring.datasource.hikari.maximum-pool-size=15
## 此屬性控制從池返回的連接的默認自動提交行為,默認值:true
spring.datasource.hikari.auto-commit=true
## 空閑連接存活最大時間,默認600000(10分鍾)
spring.datasource.hikari.idle-timeout=600000

spring.datasource.hikari.pool-name=DatebookHikariCP
## 此屬性控制池中連接的最長生命周期,值0表示無限生命周期,默認1800000即30分鍾
spring.datasource.hikari.max-lifetime=1800000
## 數據庫連接超時時間,默認30秒,即30000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1

 

添加一個model 一個controller,一個service和一個dao,就可以實現增刪改查了

package com.example.hikaridemo.model;

import org.hibernate.annotations.GenericGenerator;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Article {
    private int id;
    private String title;
    private String body;
    private String writer;
    @Id
    @GeneratedValue(generator = "_native")
    @GenericGenerator(name = "_native", strategy = "native")
    public int getId() {
        return id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

    public String getWriter() {
        return writer;
    }

    public void setWriter(String writer) {
        this.writer = writer;
    }

    public void setId(int id) {
        this.id = id;
    }
}
model
package com.example.hikaridemo.controller;



import com.example.hikaridemo.service.OrmtestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class OrmTestCtr {
    @Autowired
    private OrmtestService ormtestService;
    @RequestMapping("/insert")
    public String insertTest() {
        ormtestService.insertTest();
        return "測似乎成功";
    }
}
controller
package com.example.hikaridemo.service;


import com.example.hikaridemo.dao.OrmtestDao;
import com.example.hikaridemo.model.Article;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class OrmtestService {
    @Autowired
    public OrmtestDao ormtestDao;
    public void insertTest() {
      Article article=new  Article();
        article.setTitle("標題");
        article.setBody("這是正文");
        article.setWriter("user");
        ormtestDao.save (article);
    }
}
service
package com.example.hikaridemo.dao;



import com.example.hikaridemo.model.Article;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository
public interface OrmtestDao extends JpaRepository<Article, Long> {

}
dao

 

啟動項目,從日志里邊可以看到相關信息

 

 

 

 

運行成功,我們請求一下

http://localhost:8080/insert

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM