%%%------------------------------------------------------------------- %%% @author aresei %%% @copyright (C) 2018, %%% @doc %%% %%% @end %%% Created : 29. 九月 2018 17:01 %%%------------------------------------------------------------------- -module(mysql_pool). -author("aresei"). %% API -export([get_row/2, get_row/3, get_all/2, get_all/3]). -export([update/4, update_by/2, update_by/3, insert/4]). %% 从数据库中查找一行记录 -spec get_row(Pool :: atom(), Sql::binary()) -> {ok, Record::map()} | undefined. get_row(Pool, Sql) when is_atom(Pool), is_binary(Sql) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:get_row(ConnPid, Sql) end). -spec get_row(Pool :: atom(), Sql::binary(), Params::list()) -> {ok, Record::map()} | undefined. get_row(Pool, Sql, Params) when is_atom(Pool), is_binary(Sql), is_list(Params) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:get_row(ConnPid, Sql, Params) end). -spec get_all(Pool :: atom(), Sql::binary()) -> {ok, Rows::list()} | {error, Reason :: any()}. get_all(Pool, Sql) when is_atom(Pool), is_binary(Sql) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:get_all(ConnPid, Sql) end). -spec get_all(Pool :: atom(), Sql::binary(), Params::list()) -> {ok, Rows::list()} | {error, Reason::any()}. get_all(Pool, Sql, Params) when is_atom(Pool), is_binary(Sql), is_list(Params) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:get_all(ConnPid, Sql, Params) end). -spec insert(Pool :: atom(), Table :: binary(), Fields :: map() | list(), boolean()) -> ok | {ok, InsertId :: integer()} | {error, Reason :: any()}. insert(Pool, Table, Fields, FetchInsertId) when is_atom(Pool), is_binary(Table), is_list(Fields); is_map(Fields), is_boolean(FetchInsertId) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:insert(ConnPid, Table, Fields, FetchInsertId) end). -spec update_by(Pool :: atom(), UpdateSql :: binary()) -> {ok, AffectedRows :: integer()} | {error, Reason :: any()}. update_by(Pool, UpdateSql) when is_atom(Pool), is_binary(UpdateSql) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:update_by(ConnPid, UpdateSql) end). -spec update_by(Pool :: atom(), UpdateSql :: binary(), Params :: list()) -> {ok, AffectedRows :: integer()} | {error, Reason :: any()}. update_by(Pool, UpdateSql, Params) when is_atom(Pool), is_binary(UpdateSql) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:update_by(ConnPid, UpdateSql, Params) end). -spec update(Pool :: atom(), Table :: binary(), Fields :: map(), WhereFields :: map()) -> {ok, AffectedRows::integer()} | {error, Reason::any()}. update(Pool, Table, Fields, WhereFields) when is_atom(Pool), is_binary(Table), is_map(Fields), is_map(WhereFields) -> poolboy:transaction(Pool, fun(ConnPid) -> mysql_provider:update(ConnPid, Table, Fields, WhereFields) end).