`

Clojure学习——给持久化框架配上c3p0连接池

阅读更多
之前的两个持久化框架都没有使用连接池。总感觉不放心。试着配置了个c3p0的连接池在clojureql框架中使用。同样的,放在clj-record框架中也没问题。

添加依赖
[clojureql "1.0.4"]
[mysql/mysql-connector-java "5.1.11"]
[c3p0/c3p0 "0.9.1.2"]


样例代码(由于之前的项目一直配的是DBCP连接池,C3P0的自己没配置过,看了下C3P0的文档,大概配置以下两种。第一种应该没问题。第二种我就不确定了)
(ns sample.c3p0
  (:import (com.mchange.v2.c3p0 ComboPooledDataSource
                                     DataSources
                                     PooledDataSource))
  (:use clojureql.core))

;;c3p0连接池
(def db_pool
  (let [config {:driver "com.mysql.jdbc.Driver"
                :subprotocol "mysql"
                :subname "//127.0.0.1:3306/test"
                :user "root"
                :password "123"}
        cpds (doto (ComboPooledDataSource.)
                   (.setDriverClass (:driver config))
                   (.setJdbcUrl (str "jdbc:" (:subprotocol config) ":" (:subname config)))
                   (.setUser (:user config))
                   (.setPassword (:password config)))]
    {:datasource cpds}))

(prn @(-> (table db_pool :users)
        (project [:name])
        (take 1)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;c3p0连接池,我不大确定这样写是不是正确的
(def db_pool!
  (let [url "jdbc:mysql://localhost/test"
        user "root"
        password "123"]
    {:datasource  (->> (DataSources/unpooledDataSource url  user password)
                    (DataSources/pooledDataSource))
     :auto-commit true
     :fetch-size 1000}))

(prn @(-> (table db_pool! :users)
        (project [:name])
        (take 1)))

分享到:
评论

相关推荐

    Clojure学习——持久化框架clj-record

    本篇文章将深入探讨Clojure中的持久化框架clj-record,以及如何利用它来高效地处理数据。源码分析和工具使用是理解这一主题的关键。 首先,我们要理解什么是持久化。在计算机科学中,持久化指的是将数据存储到非易...

    Clojure学习——使用clojure jdbc操作mysql

    标题 "Clojure学习——使用clojure jdbc操作mysql" 指出的是一个关于使用Clojure编程语言通过Java Database Connectivity (JDBC) API来操作MySQL数据库的主题。Clojure是一种基于Lisp的函数式编程语言,它运行在Java...

    在 Clojure中实现遗传算法的框架_Clojure_代码_下载

    通过学习和理解这个框架,开发者不仅可以掌握如何在Clojure中实现遗传算法,还可以了解到如何利用函数式编程的特点来编写模块化、可读性强的代码,这对于理解和改进算法,甚至开发其他优化方法都非常有价值。...

    Clojure学习教程.pdf

    Clojure是一种现代的、通用的、高性能的Lisp语言方言,运行在Java虚拟机(JVM)上。它被设计成一种函数式编程语言,强调不可变数据和持久数据结构。Clojure适用于多范式编程,包括面向对象、命令式、函数式和逻辑...

    clojure-1.10.2-alpha2.jar

    Clojure的一大特色就是其并发机制,它支持不可变的数据结构(Clojure是来自于可持久化的数据结构)。Clojure还有一个特色是软件事务存储(Software Transactional Memory,STM),其支持用事务代替锁和互斥器来更新...

    hikari-cp:HikariCP JDBC连接池的Clojure包装器

    这些文件将提供与HikariCP Java API对应的Clojure函数,比如设置数据库连接参数、初始化连接池、获取连接以及关闭连接池等操作。 2. `test`: 测试代码所在的目录,包含`.clj`或`.cljs`文件,用于验证Clojure包装器...

    Python-Hypercrud用于可组合UI的clojure客户端服务器框架

    Python-Hypercrud是一个独特的开发工具,它专注于构建可组合用户界面(UI)的Clojure客户端/服务器框架。这个框架的设计理念是提供一个简洁、高效的方式来创建动态和交互式的Web应用程序,同时保持代码的清晰和可...

    庄晓丹:基于Clojure构建的移动云平台——我的Clojure实践思考

    - 讲座中庄晓丹分享了Avos团队在Clojure上的实践和经验,这对于国内的Clojure传播有着重要贡献,有助于推动国内开发社区对Clojure语言的认识和应用。 4. 与市场上的其他BaaS服务相比较: ***作为业界知名的移动...

    programming-clojure-3rd

    首先,Clojure的核心理念是简洁、并发和持久化数据结构。书中详细介绍了Clojure的语法特性,如S表达式(S-expressions)、宏(macros)和动态类型系统。S表达式是Clojure代码的基本形式,它提供了简洁的表示方式和...

    Programming Clojure 英文电子版

    ### 编程Clojure:全面解析与学习指南 #### 一、Clojure语言概述 《Programming Clojure》是一本深入探讨Clojure编程语言的书籍,该书由Stuart Halloway编写,出版于2009年3月,由Pragmatic Bookshelf出版社发行。...

    Clojure入门教程- Clojure – Functional Programming for the JVM中文版

    - **Clojure**是一种运行在Java虚拟机(JVM)上的动态编程语言,它继承了Lisp家族的强大功能,同时结合了现代编程语言的优点,如面向对象编程和函数式编程。 #### 二、Clojure的特性 - **函数式编程**: Clojure强调...

    clojure电子书

    《Clojure电子书》集合包含了三本关于Clojure编程的重要书籍和一个Leiningen的Windows安装程序,这对于学习和深入理解Clojure语言至关重要。Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,...

    clojure eclipse

    此外,Clojure也提供了一些强大的数据结构,如持久化数据结构(Persistent Data Structures),它们在修改时保持原有的结构,提高了性能和效率。 在Eclipse中,你可以使用Counterclockwise的调试功能来逐步执行...

    clojure1.3.0及资料

    Clojure是一种基于Lisp的函数式编程语言,它运行在Java虚拟机(JVM)上,充分利用了Java的生态系统。Clojure的设计目标是提供一种静态类型的、并发的、内存安全的语言,同时保持Lisp的简洁性和灵活性。在这个压缩包...

    Living clojure pdf

    根据提供的信息,我们可以推断出这是一本关于Clojure编程语言的书籍——《Living Clojure》,作者是Carin Meier。下面将从标题、描述、标签以及部分内容中提取相关的知识点。 ### 标题:Living Clojure PDF 这个...

Global site tag (gtag.js) - Google Analytics