phoenix 使用activerecord模式框架ecto 访问数据库
mix phx.new first --database mysql
config/dev.exs
config :first, First.Repo,
adapter: Ecto.Adapters.MySQL,
username: "root",
password: "dalongrong",
database: "demoapp",
hostname: "localhost",
pool_size: 10,
port: 3307
./dockerrun.sh
备注: 使用docker
#!/bin/bash
docker run -d --name mysql-server57 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=dalongrong -e MYSQL_ROOT_HOST=% mysql/mysql-server:5.7
a. 使用脚手架生成代码
mix phx.gen.schema User users name:string email:string \
bio:string number_of_pets:integer
b. 生成表结构
mix ecto.migrate
使用命令行
iex -S mix
alias First.{Repo, User}
Repo.insert(%User{email: "user1@example.com"})
[debug] QUERY OK db=2.9ms
INSERT INTO `users` (`email`,`inserted_at`,`updated_at`) VALUES (?,?,?) ["user1@example.com", {{2018, 4, 19}, {2, 50, 7, 547207}}, {{2018, 4, 19}, {2, 50, 7, 549585}}]
{:ok,
%First.User{
__meta__: #Ecto.Schema.Metadata<:loaded, "users">,
bio: nil,
email: "user1@example.com",
id: 1,
inserted_at: ~N[2018-04-19 02:50:07.547207],
name: nil,
number_of_pets: nil,
updated_at: ~N[2018-04-19 02:50:07.549585]
}}
Repo.all(User)
[debug] QUERY OK source="users" db=3.3ms
SELECT u0.`id`, u0.`bio`, u0.`email`, u0.`name`, u0.`number_of_pets`, u0.`inserted_at`, u0.`updated_at` FROM `users` AS u0 []
[
%First.User{
__meta__: #Ecto.Schema.Metadata<:loaded, "users">,
bio: nil,
email: "user1@example.com",
id: 1,
inserted_at: ~N[2018-04-19 02:50:08.000000],
name: nil,
number_of_pets: nil,
updated_at: ~N[2018-04-19 02:50:08.000000]
}
]
https://hexdocs.pm/phoenix/ecto.html#content
https://github.com/rongfengliang/phoenix-ecto-demo
phoenix 使用activerecord模式框架ecto 访问数据库的更多相关文章
- 手工搭建基于ABP的框架(2) - 访问数据库
为了防止不提供原网址的转载,特在这里加上原文链接: http://www.cnblogs.com/skabyy/p/7517397.html 本篇我们实现数据库的访问.我们将实现两种数据库访问方法来访 ...
- ABP框架用Dapper实现通过SQL访问数据库
ABP的框架(2) - 访问数据库 为了防止不提供原网址的转载,特在这里加上原文链接:http://www.cnblogs.com/skabyy/p/7517397.html 本篇我们实现数据库的 ...
- Spring Boot 框架下使用MyBatis访问数据库之基于XML配置的方式
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可以使用简单的 XML ...
- Spring框架访问数据库的两种方式的小案例
1.1 以Xml的方式访问数据库的案例 要以xml的方式访问数据库需要用到JdbcTemplate ,因为 JdbcTemplate(jdbc的模板对象)在Spring 中提供了一个可以操作数据库的对 ...
- YII框架安装过程-数据库访问
1.电脑上原来安装了phpstudy.关掉phpstudy,启动wamp,虽启动成功,但仍然无法使用phpmyadmin登录数据库管理页面. 2.查看到系统服务有mysql服务,检查属性均为emsoa ...
- ActiveRecord模式整理
DAO Data Access Object,数据访问对象 DAO是一个软件设计的指导原则,在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象 ...
- Spring实战6:利用Spring和JDBC访问数据库
主要内容 定义Spring的数据访问支持 配置数据库资源 使用Spring提供的JDBC模板 写在前面:经过上一篇文章的学习,我们掌握了如何写web应用的控制器层,不过由于只定义了SpitterRep ...
- ASP.NET MVC+Entity Framework 4.1访问数据库
Entity Framework 4.1支持代码优先(code first)编程模式:即可以先创建模型类,然后通过配置在EF4.1下动态生成数据库. 下面演示两种情形: 1.代码优先模式下,asp.n ...
- 深入了解Entity Framework框架及访问数据的几种方式
一.前言 1.Entity Framework概要 Entity Framework是微软以ADO.NET为基础所发展出来的对象关系映射(O/R Mapping)解决方案.该框架曾经为.NET Fra ...
随机推荐
- PHP XML Parser 函数
PHP XML Parser 简介 XML 函数允许您解析 XML 文档,但无法对其进行验证. XML 是一种用于标准结构化文档交换的数据格式.您可以在我们的 XML 教程 中找到更多有关 XML 的 ...
- 19.并发容器之BlockingQueue
1. BlockingQueue简介 在实际编程中,会经常使用到JDK中Collection集合框架中的各种容器类如实现List,Map,Queue接口的容器类,但是这些容器类基本上不是线程安全的,除 ...
- 033——VUE中安装使用vue-devtools调试工具用于监控数据变化
vue官网:https://cn.vuejs.org/ 下的官方仓库:vue-devtools 安装到火狐或谷歌下都可以,安装成功之后,按F12查看就可以了
- 自定义URL协议在Web中启动本地应用程序
转自(http://blog.csdn.net/jackychen_king/article/details/7743811) 1.注册应用程序来处理自定义协议 你必须添加一个新的key以及相关的va ...
- C++复习1.内存管理的知识
C++ 内存管理 1.内存分配的方式有三种: 从静态存储区分配:在程序编译期间已经分配好了,这些在程序的生命周期内都是有效的,如全局变量,static变量 一个例子: char * p = " ...
- LeetCode OJ:Reverse Bits(旋转bit位)
Reverse bits of a given 32 bits unsigned integer. For example, given input 43261596 (represented in ...
- java 静态代理 JDK动态代理 Cglib动态代理
下面以一个简单的银行账户为例讲述讲述动态代理. 设计一个银行账户类,包含用户的账户余额,实现查询和更新余额功能 这个系统用了一段时间,有客户要求对账说账户余额给弄错了?因为上面没有存取款记录,最后银行 ...
- C++解决error C4996报错
今天用c++写了个数独程序,在编译过程中报了一个错误: 1>------ 已启动生成: 项目: sudoku, 配置: Debug Win32 ------1> main.cpp1> ...
- (转)MapReduce Design Patterns(chapter 6 (part 2))(十二)
Chain Folding 这是对job 链的一种优化.基本上是一种大体规则:每条记录都会提交给多个mapper,或者给reducer然后给mapper.这种综合处理方法会节省很多读文件和传输数据的时 ...
- [Python] 计算dataframe某一文本维度的平均长度
print np.mean(df.title.apply(lambda x: len(x))) # 24.072694718 print df.title.apply(lambda x: len(x) ...