初探erlang的mysql数据库使用

本文介绍了一种基于OTP框架的ErLang应用mysql-otp,该应用提供了与MySQL数据库高效交互的方法。文中详细阐述了数据模型的设计、不同数据格式的支持以及如何通过ErLang实现数据的读写操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  1. OTP框架结构,适合当前开发的服务框架
  2. 使用的基础库mysql-otp,使用者较多,作者为emysql的用户之一,比较靠谱

两种引用方式:
  1. my own supervisor:即添加到项目的监控树下,效果如图:
     

     没有启动新的application。
  1. 通过配置文件和服务依赖启动,效果如图:
         

 选择独立服务启动,原因是,独立引用,互不干涉,方便更新和维护。

数据交互模型

     表:user
     属性:id <str>, name <str>, age <int>

     mysql:
     输入支持binary和list两种格式:[<<"id">>,<<"name">>, ... ...] OR ["id", "name", ...]
     输出格式为binary:{ok, [<<"id">>, <<"name">>, <<"age">>, ... ...], [[<<"">>, <<"">>, ...], [<<"">>, <<"">>, ...], ... ...]

     erlang:
     model_table.erl
     create(Model) ->
          DbData = transform_to_sql_data(Model),
          %% insert to mysql.

     get(Index or Id) ->
          [DbData] = select from mysql,
          Model = transform_to_model(DbData),
          %% return Model

     get_list(Index or others) ->
         DbDatas = select from mysql,
         ModelList = transform_to_model()
         %% return ModelList

     Model = {user, <<"id">>, <<"name">>, ...}
     DbData = [<<"id">>, <<"name">>, ...]

     是否检查record与mysql表结构的关系?
     1.插入时,使用INSERT INTO table (id, name, ...) VALUES (?,?,?) 显式指定字段名称;取代 INSERT INTO table VALUES (?,?,?)的用法
     2.查询时,返回Keys=[<<"id">>,<<"name">>,...]对比record_info(table)定义:[id, name, ...]

     编码问题:统一使用utf8编码啊,erlang中使用的json库,已兼容编码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值