利用ErlyDB来实现数据库表的添加、删除、修改、查询操作

     在ErlyWeb的erlyweb模块中,有一个compile/2的函数,其作用是用来编译源代码到ebin中去的,函数原型是:compile(AppDir::string(), Options::[option()]) -> {ok, Now::datetime()} | {error, Err}.AppDir参数是项目所在的路径,Options是可选参数列表,其中就包含一个{erlydb_driver, Name}选项,意思就是编译的时候选择数据库驱动,同时将项目中所要用到的数据库表利用erlydb:code_gen/2函数来生成对应的beam文件,不如数据库中有一个user表,对应的就有一个user.beam.利用user来实现user表的新增、删除、修改以及查询等.

    现在,从开始建立一个项目开始,一步一步来实现数据库表的操作.进入控制台,定位到需要建立项目所在的目录,比如E:\erlang\www。然后启动Erlang shell,这样erlang shell的当前工作目录就是E:\erlang\www了。然后利用erlyweb:create_app来创建一个项目,erlyweb:create_app("blog", "."),"."是代码在当前路径,执行完这个函数后,如果没有错误则将在www目录中创建一个blog目录,blog目录中包含有www、src、ebin三个目录,对应的作用是存放静态页面如html、css、js,源代码,编译后的代码。

src目录中包含一个components,用来存放各个组件如_components.erl、_view.et、以及erl文件。

    在mysql数据库中创建一个blog的数据库,再新建一个login的表,包含的字段有logname,password,email.然后在elang shell中创建一个与表login对应的components,用到的函数是 :erlyweb:create_component("login", "./blog"),"./blog"是指在blog文件夹内src的components中,执行完后就产生了三个文件:login.erl、login__controller.erl、login_view.erl。在这里主要用到的就是login.erl了.

    现在,开始连接到数据库,并且把login表映射到login.erl了。

    1)、利用erlydb建立mysql数据库的链接

             erlydb:start(mysql, [{hostname, "localhost"}, {username, "root"}, {password, "123456"}, {database, "blog"}]).

     2)、连接成功后,利用erlyweb:compile来编译blog工程

    erlyweb:compile("./blog", [{erlydb_driver, mysql}]).

   执行成功,在ebin目录中可以看到编译后的代码文件.

   3)、新建一条login记录,并且保存到数据库中

    Login = login:new_with([{loginname, "John"}, {password, "123456"}, {email, "test@126.com"}]).

    SavedLogin = login:save(Login).

   以上执行完后,利用MySQL Query Browser可以查看到数据已经正确的插入到数据库中去了.

   4)、更新login表.

     login:update([{email,<<"123@123.com">>}, {password,<<"654321">>}], {loginname,'=',"John"}),其中[]中表示的是要更新的字段,{loginname,'=',"John"}表示where条件

   5)、查询login表的记录

    FindLogin = login:find_first({loginname, '=', "John"}).

    find_first函数可以包含多个条件,每个条件用{}包含起来,比如 login:find_first({{loginname, '=', "John"},'and',{email,test@126.com}}).

   6)、删除login表的记录

   login.delete(FindLogin).

 

    以上就是erldb对表的相关操作了,主要参考资料就是erlweb网站上的文档http://erlyweb.org/doc/.上面的操作可以参考erlyweb模块的create_app/2、create_component/2、compile/2函数和erldb模块的start/2函数。最主要的涉及到的添加、删除、修改、查询的操作就要参考erlydb_base模块的相关函数了

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值