RoR - Advanced Querying
Posted vixennn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RoR - Advanced Querying相关的知识,希望对你有一定的参考价值。
Seeding the Database:
db/seed.rb 可以提供预设data
rake db:seed
#seeds.rb Person.create! [ {first_name : "kalman", last_name: "Smith", age:33 }, {first_name : "John", last_name: "Whatever", age: 27}, {first_name: "Michael", last_name: "Smitch" ,age: 15} ] rake db:seed #=> 将上面数据写入数据库
rails db
.headers on
.mode columns
显示数据库内容
Including SQL fragments:
Person.where("age BETWEEN 30 and 33").to_a #=> 选出年龄在30与33之间的人转化成array输出 Person.find_by("first_name LIKE ‘%man‘") #=> 选出名中带有man的人
SQL injection:
*操作原始SQL以侵入数据库
*这包括恶意删除表或获取机密信息
Array and Hash Condition Synatx:
Array Syntax:
允许使用 ? 后跟值(参数)指定SQL片段
自动对输入值执行转换并转义SQL中的字符串
不受SQL影响
类似于Java中的PraveReDebug语句
Person.where("age BETWEEN ? AND ?". 28 ,34 ).to_a Person.where("first_name LIKE ? OR last_name LIKE ?", ‘%J%‘,‘%J%‘).to_a
Array Syntax 有两个小问题:
1. 必须追踪? 在其后面给予数值
2.多有少个? 就必须赋多少值
Hash Condition Syntax:
Person.where("age BETWEEN :min_age AND :max_age", min_age:28, max_age:32).to_a Person.where("first_name LIKE :pattern OR last_name LIKE :pattern", pattern: ‘%J%‘).to_a
以上是关于RoR - Advanced Querying的主要内容,如果未能解决你的问题,请参考以下文章
mybatis查询异常-Error querying database. Cause: java.lang.ClassCastException: org.apache.ibatis.executo
Atcoder 212D Querying Multiset
AtCoderD - Querying Multiset 优先队列
Redshift Querying: error xx000 disk full redshift
搭建Mybatis 出现 Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statement
Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection doe