Hikari 來自日文,是「光」的意思。做者估計是爲了藉助這個詞來暗示這個CP速度飛快!java
這個產品的口號是「快速、簡單、可靠」。mysql
再也不過多介紹了,有興趣的朋友能夠訪問:https://github.com/brettwooldridge/HikariCP/wikigit
目錄github
1.編寫工具類sql
2.編寫配置文件:hikaricp.properties數據庫
3.編寫SQl數據:apache
4.編寫實體類:ide
1.編寫工具類
package cn.javabs.school.util; import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariDataSource; import org.junit.Test; import javax.sql.DataSource; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; /** * Hikaricp數據庫鏈接池工具類的設計 * @author Mryang */ public class HikaricpUtils { // 定義HikariDataSource類型的dataSource // 注意: 由於HikariDataSource類 實現了DataSource 接口。 所以 dataSource 便是HikariDataSource類型也是DataSource類型 public static HikariDataSource dataSource; /** * 獲取數據源 * @return * @throws SQLException * @throws IOException */ public static DataSource getDataSource() { try { // 由於dataSource是全局變量、默認初始化值爲null if (dataSource == null){ // 經過字節輸入流 讀取 配置文件 hikaricp.properties InputStream is = HikaricpUtils.class.getClassLoader().getResourceAsStream("hikaricp.properties"); // 由於HikariConfig類不能夠加載io,可是能夠加載Properties。所以:將輸入流is封裝到props Properties props = new Properties(); props.load(is); // 再將封裝好的props 傳入到HikariConfig 類中,獲得 config對象 HikariConfig config = new HikariConfig(props); // 將config對象傳入給HikariDataSource ,返回dataSource dataSource = new HikariDataSource(config); } // 返回dataSource return dataSource; } catch (IOException e) { throw new RuntimeException(e); } } /** * 經過數據源獲取鏈接 * @return * @throws SQLException */ public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } }
2.編寫配置文件:hikaricp.properties
配置文件密碼爲:hikaricp.properties學習
# 數據庫驅動|不填寫HikariCp會自動識別 driverClassName=com.mysql.jdbc.Driver # 訪問數據庫鏈接 jdbcUrl=jdbc:mysql://localhost:3306/hikaricp-data # 數據庫用戶名 username=root # 數據庫密碼 password=sorry # 最大鏈接數 maximumPoolSize=30 # 鏈接池空閒鏈接的最小數量 minimumIdle=5 # 開啓事務自動提交 autoCommit=true # 是否自定義配置,爲true時下面兩個參數才生效 dataSource.cachePrepStmts=true # 鏈接池大小默認25,官方推薦250-500 dataSource.prepStmtCacheSize=250 # 單條語句最大長度默認256,官方推薦2048 dataSource.prepStmtCacheSqlLimit=2048
3.編寫SQl數據:
create database hikaricp-data; use hikaricp-data; create table user( id int primary key auto_increment, username varchar(50) not null unique, password varchar(50) not null ); insert into user(id,username,password) values('1001','wangcai','wangcai123'); insert into user(id,username,password) values('1002','xiaoqiang','xiaoqiang123'); insert into user(id,username,password) values('1003','0927','0927'); insert into user(id,username,password) values('1004','baihu','baihu'); insert into user(id,username,password) values('1005','xingxing','xingxing');
4.編寫實體類:
public class User { private Integer id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User{" + "id=" + id + ", username='" + username + '\'' + ", password='" + password + '\'' + '}'; } }
5.編寫測試類:TestDataByHikaricp
package cn.javabs.school.test; import cn.javabs.school.entity.User; import cn.javabs.school.util.HikaricpUtils; import org.apache.commons.dbutils.QueryRunner; import org.apache.commons.dbutils.handlers.BeanHandler; import org.junit.Test; import java.io.IOException; import java.sql.SQLException; public class TestDataByHikaricp { @Test public void testHikariCp() throws SQLException, IOException { User user = new User(); QueryRunner qr = new QueryRunner(HikaricpUtils.getDataSource()); User u = qr.query("select * from user where id=1005", new BeanHandler<User>(User.class)); System.out.println(u); } }
做者: 楊校
出處: https://mryang.blog.csdn.net
Java互聯網交流學習羣:827829292
分享是快樂的,也見證了我的成長曆程,文章大多都是工做經驗總結以及平時學習積累,基於自身認知不足之處在所不免,也請你們指正,共同進步。
本文版權歸做者全部,歡迎轉載,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出, 若有問題, 可郵件(397583050@qq.com)諮詢。
本文同步分享在 博客「楊校」(CSDN)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。