zoukankan      html  css  js  c++  java
  • c#数据库连接池Hikari重构升级

    Hikari是我自定义的数据库连接池,前面已经提供了地址。因为c#的连接池按照规范的ADO.NET里面实现定义的。由数据库官方提供,但是实现方式就不知道了,反正没有看出来,估计一般是连接类实现的,但是没有看出来怎么使用的。

    对其升级重构:

    重新设计缓存池,消除锁,使用安全栈,提升性能。所有的设置均采用状态,只是在获取的时间才真实关闭,同时根据配置,监视使用情况,部分解决外部使用失误,没有回收的情况。很多内容设置移动到缓存池中设置,并且是使用时设置,真正关闭连接也是。

      根据我们使用的习惯,自定义了一个数据库连接池,HikariDataSource作为对外的类,提供连接对象,其实是自己定义的。HikariConfig类是配置类,支持文件配置加载,配置文件只要是文本就可以了。其实HikariDataSource继承了HikariConfig,所以从使用上,HikariDataSource类可以支持设置或者加载配置,但是我不建议,我推荐的用法是:

    HikariConfig hikariConfig = new HikariConfig();
    hikariConfig.LoadConfig("Hikari.txt");
    HikariDataSource hikariDataSource = new HikariDataSource(hikariConfig);
    
    使用
    var connection = hikariDataSource.GetConnection();
    if (connection != null)
                        {
                            var cmd = connection.CreateCommand();
                            cmd.CommandText = "select * from student";
                            var rd = cmd.ExecuteReader();
                            int datanum = 0;
                            string data = "";
                            while (rd.Read())
                            {
                                data+="ID:"+rd.GetInt32(0);
                                data+=",Name:"+ rd.GetString(1);
                                Console.WriteLine(data);
                                datanum++;
                            }
                            rd.Close();
                            cmd.Dispose();
                            connection.Close();//这里是回收缓存,否则就会长时间没有连接可用,直到达到设置的使用时间
                        }
    

    数据库连接池于2018-12-13再次升级。

    不好意思,该类库继续升级完善 2018-12-31继续升级

  • 相关阅读:
    boot空间不足
    catkin init/build 遇到catkin:command not found 的解决办法。
    ros自定义消息的时候报错ImportError: No module named em
    Opencv——相机标定
    Spring Boot 怎么打一个可执行 Jar 包?
    代码写成这样,老夫无可奈何!
    在外包干了三年,我废了……不吹不黑!
    国庆加了三天班,公司不给钱,咋办?
    面试官问线程安全的List,看完再也不怕了!
    年轻人的第一个自定义 Spring Boot Starter!
  • 原文地址:https://www.cnblogs.com/jinyu20180311/p/10386298.html
Copyright © 2011-2022 走看看