2019独角兽企业重金招聘Python工程师标准>>>

Common Lisp 通过CFFI可以调用其它语言的接口,如此,Common Lisp可以快速开发各种应用程序,本文将讲述在ubuntu系统下的一个简单的Common Lisp与mysql交互的实例。

准备

  • 安装CFFI

sudo apt-get install cl-cffi
  • 安装CL-MYSQL

sudo apt-get install cl-sql-mysql
  • 安装MYSQL

sudo apt-get install mysql-server
  • 安装quicklisp

wget http://beta.quicklisp.org/quicklisp.lisp

开始

启动slime或sbcl(本例使用slime).

进入slime:

M+x slime

slime下加载quicklisp:

CL-USER> (load "quicklisp.lisp")
CL-USER> (quicklisp-quickstart:install)
CL-USER> (ql:add-to-init-file)

加载cffi和cl-mysql:

CL-USER> (ql:quickload "cffi") CL-USER> (ql:quickload "cl-mysl")

定义试验用的mysql操作包:

(defpackage :com.casic.mysql-oper(:use :common-lisp :cl-mysql :cl-mysql-system))#<PACKAGE "COM.CASIC.MYSQL-OPER">

(注:本实例涉及到的mysql操作分别包含于cl-mysql包和cl-mysql-system包内,为避免经常性地切换包,建立一包含以上两包的自定义包mysql-oper)。

切换到自定义包:

CL-USER> (in-package :com.casic.mysql-oper)#<PACKAGE "COM.CASIC.MYSQL-OPER">

链接mysql数据库:

MYSQL-OPER> (connect :host "localhost" :user "root" :password "")#<CONNECTION-POOL {BF51E81}>

进入现有数据库test:

MYSQL-OPER> (query "use test")(((0) NIL))

创建新表person_info:

MYSQL-OPER> (query "create table person_info\(id int\)")(((0) NIL))

插入数据:

MYSQL-OPER> (query "create table person-info\(id int\)")(((1) NIL))

也可以处理multi-statements,多语句:

MYSQL-OPER> (query "insert into person_info values \(2\);insert into person_info values \(3\);insert into person_info values \(4\)")(((1) NIL) ((1) NIL) ((1) NIL))

查询数据:

MYSQL-OPER> (query "select * from person_info")((((1) (2) (3) (4)) (("id" :LONG 32768))))

更新数据:

MYSQK-OPER> (query "update person_info set id=6 where id=4")(((1) NIL))MYSQL-OPER> (query "select * from person_info")((((1) (2) (3) (5)) (("id" "LONG 32768))

删除数据:

MYSQL-OPER> (query "delete from person_info where id=5")(((1) NIL))
MYSQL-OPER> (query "select * from person_info")((((1) (2) (3)) (("id" :LONG 32768))

至此,Common Lisp通过cffi和cl-mysql操作mysql数据库的基本功能完成。您可以像使用php一样操作mysql数据库建立自己的应用程序了!

转载于:https://my.oschina.net/u/1011760/blog/130787

Common Lisp 操作Mysql相关推荐

  1. c rs232 mysql_C++操作mysql方法总结(2)

    C++通过ODBC和通过MFC ODBC操作mysql的两种方式 使用vs2013和64位的msql 5.6.16进行操作 项目中使用的数据库名和表数据请参考C++操作mysql方法总结(1)中的介绍 ...

  2. 实用Common Lisp编程——函数

    有了语法和语义规则以后,所有Lisp程序的三个最基本组成部分就是函数.变量和宏.在第3章里构建数据库时,这三个组件已经全部用到了,但是我没有详细提及它们是如何工作的,如何更好使用它们.接下来的几章将专 ...

  3. Vim 下使用 Slimv(类似Slime) 轻松调试 Common Lisp

    2019独角兽企业重金招聘Python工程师标准>>> Vim 下使用 Slimv(类似Slime) 轻松调试 Common Lisp 目录 前情回顾 安装slimv 数据配置 默认 ...

  4. python mysql工具类_Python工具类(一)—— 操作Mysql数据库

    如何调用直接看__main__函数里如何调用此工具类就阔以啦! # encoding=utf-8 import pymysql # 导入所有Mysql配置常量,请自行指定文件 from conf.se ...

  5. Win10+Python+Django+Nginx+MySQL开发教程及实例(2)——Python连通操作MySQL

    Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本系列教程共有四篇内容: 第一篇: 开发环境搭建 第二篇:用Python连通操作MySQL 第三篇:用N ...

  6. Common Lisp学习之一:初识CL的语法与语义

    Lisp是一类语言的统称,指那些使用前缀表达式和S表达式进行代码编写和编译的语言.此类语言有CL,Scheme,Racket,Clojure等.Lisp语言和其他语言相比,其优势在于无比强大的抽象能力 ...

  7. Common Lisp 超规范(译文):2. 语法

    2. 语法 2.1 字符语法 2.2 读取器算法 2.3 token 标记的解释 2.4 标准宏字符 2.1 字符语法 Lisp 读取器[Lisp reader]从一个流[stream]中读取字符[c ...

  8. Practical Common Lisp [个人翻译版]

    1. 引言 ********** Lisp?!啥玩意? ========== 如果你也认为简洁优雅的代码是你的追求,那Lisp就是你的最佳选择. 使用Lisp,你可以写出比其他语言更简洁的代码,同时多 ...

  9. Common Lisp 超规范(译文):8.结构体

    8. 结构体 8.1 结构体的字典 宏 DEFSTRUCT 函数 COPY-STRUCTURE 宏 DEFSTRUCT 语法(Syntax): defstruct name-and-options [ ...

最新文章

  1. 应用层下的人脸识别(一):图像获取
  2. 再学 GDI+[33]: TGPPen - 画笔的几何变换 - SetTransform
  3. vue2.0+stylus实现商品增加减少控制按钮组件
  4. pdf文档遇到了共享冲突_如何将链接共享为PDF格式的Google文档链接
  5. 【问题解决】无法创建新的堆栈防护页面
  6. 前端学习(3289):react hook state-hook
  7. boost.asio基础篇 小白入门注解
  8. 第一篇 mybatis的简介
  9. JDK集合框架结构分析(二)
  10. [转载]仿射变换(Affine Transformation)
  11. ES6深入浅出-1 新版变量声明:let 和 const-1.视频 概述
  12. 目前国内汉语自动分词系统的研究现状
  13. windows server 2008 R2 补丁下载地址
  14. 剧本创作时的标准格式,让你的剧本轻松得到制片公司青睐
  15. 在校生学习云计算HCIE难吗?好就业吗?
  16. 一文能读懂车载与Android的关系
  17. 杜教筛 (包括线筛) 莫比乌斯函数前缀和 欧拉函数前缀和 因数和函数前缀和 因子个数前缀和 ( 分析 )...
  18. 敏捷开发之道 总结小记
  19. labview接收串口通信数据不正常的解决办法
  20. python项目报告书_python项目

热门文章

  1. 机器人学习--智能移动机器人的有关技术演讲(浙大-熊蓉教授-2018年)
  2. Python IDLE 如何清屏
  3. Java实现插入排序及其优化 insertion sort
  4. C++中如何使输出的1变成01
  5. 服务器上有图片但是app不显示不出来,网络app图片显示不出来的
  6. oracle中国授权机构查询,oracle授权查询
  7. python最新功能_Python在2020的新增功能:第1部分
  8. 人民日报智慧媒体研究院与第四范式合资成立智媒新创 赋能智慧媒体创新
  9. micropython随笔-hello,world
  10. 【Python】机器学习矩阵运算必学库Numpy首秀!