`

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

阅读更多
一、在mysql库中建需要的test库和users表。
CREATE DATABASE test;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `email` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`id`)
);


二、新建lein项目(lein new examples)。

三、编辑examples项目的project.clj文件,添加需要的jdbc依赖包。
(defproject examples "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [org.clojure/java.jdbc "0.2.3"]
                 [mysql/mysql-connector-java "5.1.21"]])


四、下载依赖(lein deps)。(PS:由于我用的IDE是IntelliJ IDEA,且现在的IDE对于lein2支持不是太好。我就只好再打个命令:lein pom 生成pom文件,然后再用IntelliJ IDEA打开pom文件来导入工程了。)

五、编写代码。src/examples/jdbc.clj代码如下:
(ns examples.jdbc
  (:require [clojure.java.jdbc :as sql]))

(def mysql-db {:subprotocol "mysql"
               :subname "//127.0.0.1:3306/test"
               :user "root"
               :password "123456"})

;;;在users表中插入三条记录
(sql/with-connection mysql-db
  (sql/insert-records :users
    {:name "bill" :email "bill@hello.com" }
    {:name "ken" :email "ken@hello.com"}
    {:name "lili" :email "lili"}))

;;查询并打印第一条记录的name字段
;;可以在命令行:lein run -m examples.jdbc 查看运行结果
(defn -main []
  (let [name (sql/with-connection mysql-db
    (sql/with-query-results rows
      ["SELECT * FROM users "]
      (:name (first rows))))]
    (prn name)))


我知道的运行上面代码的几种方法:
1、直接使用lein run -m examples.jdbc运行。
2、lein repl命令启动后,拷贝进去跑就是了。
3、通过IntelliJ IDEA来运行。

最后,附上本例子工程的到附件中。

参考资料:https://github.com/technomancy/leiningen/blob/master/doc/TUTORIAL.md
https://github.com/clojure/java.jdbc
0
3
分享到:
评论

相关推荐

    clojure for mysql.zip

    《Clojure for MySQL:连接与数据操作指南》 在当今的软件开发中,数据库系统扮演着至关重要的角色,而MySQL作为一款广泛使用的开源关系型数据库管理系统,被许多开发者青睐。当我们将目光转向Clojure,一个现代、...

    为mysql设计的Clojure库.zip

    因此,"mysql-master"可能封装了JDBC的相关操作,提供了Clojure友好的API。例如,它可能会提供以下功能: 1. **数据库连接**:创建和管理到MySQL服务器的连接。这通常涉及到配置数据库URL、用户名、密码等信息,并...

    ejc-sql:Emacs SQL客户端使用Clojure JDBC

    ejc-sql通过Clojure的JDBC库,可以连接到MySQL、PostgreSQL、Oracle等众多数据库系统。用户只需配置相应的数据库连接信息,如URL、用户名和密码,就可以在ejc-sql中进行数据库操作。 ejc-sql的主要功能包括: 1. *...

    todo-backend-clojure-reitit:Todo-Backend API规范的ClojureReititnext.jdbc实现

    `todo-backend-clojure-reitit` 是一个基于Clojure编程语言,利用Reitit框架和next.jdbc库实现的Todo-Backend API规范的项目。这个项目旨在为开发者提供一个可扩展、灵活且高效的API后端服务,用于处理待办事项...

    config:使用EDN配置文件在Clojure中管理环境变量的库

    例如,如果配置文件中有`:db-url "jdbc:mysql://localhost:3306/mydb"`,你可以用`(config/get :db-url)`来获取数据库URL。 config库还提供了许多高级特性,比如: - **合并配置**:你可以通过`config/merge-...

    jeesql:使用SQL的Clojure库

    **jeesql:使用SQL的Clojure库** ...如果你正在使用Clojure进行数据库操作,`jeesql`是一个值得考虑的库,它能帮助你编写出更清晰、更安全的代码。在实际项目中,`jeesql`的灵活性和便利性将大大提高你的开发效率。

    config:使用EDN文件和clojure.spec配置系统

    {:url "jdbc:mysql://localhost/mydb" :user "admin" :password "secretpassword"} :logging {:level :info :appender :console}} ``` 在这个例子中,我们定义了两个配置项:`database`和`logging`,它们都...

    laniu:Clojure Orm库,它是Clojure的Django模型

    `laniu` 支持多种数据库,如 PostgreSQL、MySQL、SQLite 等,它利用了 `clojure.java.jdbc` 库来处理数据库连接。这意味着开发者可以根据项目需求选择合适的数据库系统。 ### 5. 使用示例 创建模型: ```clojure ...

    ssa-clojure:小型Web应用程序-用Clojure编写-函数式编程实践

    它使用标准的mysql jdbc连接器与本地主机上托管的数据库进行通信。 在前端,Web应用程序使用Bootstrap 3.3.5。 和JQuery 3库。 所有公共html文件都是.mustache扩展名,因为在controller.clj和html页面之间绑定数据...

    clojureql:ClojureQL是Clojure的高级SQL集成

    ClojureQL是基于Java的JDBC(Java Database Connectivity)接口,这使得它能够与各种支持JDBC的数据库系统兼容,包括MySQL、PostgreSQL、Oracle等。通过JDBC,ClojureQL能够透明地与后端数据库进行交互,执行SQL...

    贪吃蛇java程序源码-yesql:一个使用SQL的Clojure库

    贪吃蛇java程序源码Yesql - Clojure 和 SQL 重新思考。 Yesql 是一个用于使用SQL ..."9.4-1201-jdbc41"] MySQL [mysql/mysql-connector-java "5.1.32"] Oracle [com.oracle/ojdbc14 "10.2.0.4.0"] SQLite [org.

    env-config:一个通过环境变量覆盖配置映射的Clojure(Script)库

    (def config {:database-url "jdbc:mysql://localhost/mydb" :api-key "default-api-key"}) ``` 2. 然后,env-config 会自动查找与配置键相匹配的环境变量,并用其值替换配置映射中的相应项。例如,你可以设置...

    坐骑:观看坐骑的起伏

    本话题将聚焦于Clojure中的一个库——Mount,它是状态管理和生命周期管理的一个解决方案。标题"坐骑:观看坐骑的起伏"隐喻地描述了Mount如何帮助开发者优雅地处理程序中的状态变化。 Mount库的核心概念是“组件”...

    dyn-edn:EDN内容中的动态属性

    ) "jdbc:mysql://localhost/dev" "jdbc:mysql://remotehost/prod")} ``` 在这个例子中,`env :dev?`是一个动态表达式,它会根据当前的环境变量决定数据库URL。如果环境变量`dev?`为真,那么使用本地开发数据库的URL...

    dbexport:db导出库到定界的压缩输出

    Xmx2048 -jar <jarfile> -h以获取: Usage: dbexport [options]Options: -J, --jdbc jdbc-url localhost JDBC url ensure that the correct jdbc drivers are on the classpath mysql: jdbc:mysql://localhost:3306/...

    friendui-sql:实现 Friend-UI 的存储协议,将用户数据存储在 SQL Korma 数据库中

    一个 Clojure 库,旨在将 Clojure Friend 的帐户信息存储在 SQL (JDBC) 数据库中。 这是在使用SQL 实现的存储协议(它最初绑定到Datomic)。 该库基于 SQL Korma 抽象层 - 为 MySQL/Percona/MariaDB 和 PostgreSQL ...

    ragtime:与数据库无关的迁移库

    Ragtime是一个专门为Clojure语言设计的数据库迁移库,它允许开发者在不同的数据库系统之间进行无缝的数据迁移。这个工具的核心理念是与具体的数据库实现解耦,使得开发过程更加灵活,同时保持数据一致性。Ragtime...

    friend-ui:朋友使用 enlive 的网络前端

    它使用JDBC; 提供了 MySQL 和 PostgreSQL 模式,如果您自定义模式,也可以支持其他数据库。 用法 配置 Friendui 在类路径中查找名为: friendui-config.edn的配置文件。 可以在此处找到示例配置:[ ] 然后,

Global site tag (gtag.js) - Google Analytics