複数項目を条件にしたソートをActiveRecordで記述する場合に毎回検索して調べていましたが非常に簡単な方法がありました。 order を項目の数だけ記述すればいいのです。
![Railsで複数項目での order by を簡単に記述する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/856d4d823c71c11c2805413767595d02efa44c53/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9UmFpbHMlRTMlODElQTclRTglQTQlODclRTYlOTUlQjAlRTklQTAlODUlRTclOUIlQUUlRTMlODElQTclRTMlODElQUUlMjBvcmRlciUyMCUyMGJ5JTIwJUUzJTgyJTkyJUU3JUIwJUExJUU1JThEJTk4JUUzJTgxJUFCJUU4JUE4JTk4JUU4JUJGJUIwJUUzJTgxJTk5JUUzJTgyJThCJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0xNGFhZWFlYjhiYzFjZTY2OWY5ZTk5MDM1N2I3OGY0Zg%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwY29ib3QwMCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9MjUzYjliOTA1Y2NlZjcwYTk5ODE2YzFmYzg0NTFjOGU%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Ddc96be42d18ecec287c94163cdaca540)
Amazon Relational Database Service (Amazon RDS) は、Amazonがクラウドで提供するのリレーショナルデータベースサービスです。 今回はMySQLのGUIクライアントであるMySQL WorkbenchからRDSのMySQLに接続する方法を紹介します。 MySQL Workbenchのインストール まずはこちらからMySQL Workbenchをダウンロードし、インストールします。 Windows版の他、Linux版、Mac OS X版などがありますので、ご利用の環境に合わせた物をインストールしてください。 インストールが完了したらMySQL Workbenchを起動します。 起動すると以下のような画面が表示されます。なお、以下の画面はすべてMySQL Workbench 6.1のものです。 コネクションの設定 では、早速RDSへの接続設定を行
ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect string value: '...' for column 'body' at row Mysql2::Error: Index column size too large. The maximum column size is 767 bytes. 「使えない文字が含まれてるよ」 「カラムのサイズがデカすぎる。767バイト以内にして」(合ってる・・?) rails5で開発中にこのエラーに出くわしたので、ここに対策を記載しておきます。 簡単に言うと上のエラー(1つめ)は絵文字が原因です。 絵文字を含んだ文字列をレコードに格納するには utf8からutf8mb4にテーブルの構造を変えなきゃならんのですが、 変えたら今度はバイト数の関係で下のエラー(2つめ)が発生します。 環境:
きっかけ 趣味のWebサイト制作で頭の整理のためにシーケンス図等を書きたいなーと思ったので、 PlantUMLを使って書いた後にどうせならドキュメントでPlantUMLにできるところを PlantUMLにしてしまおうと思い立ったのがきっかけです。 PlantUMLとは PlantUMLはシーケンス図やクラス図等のダイアグラムを text形式で記述できる方式です。 メリット text形式だからgit等で差分を取りやすい vscode等のIDEの自動補完機能を使用すればかなりの速度でUML図を書けるようになる 後述のchrome拡張機能もあり、全てをtextで管理したいがちなエンジニアにとっては 良いツールとなっているのではと思います。 スニペットもうまく使っていければ高速で記述できそうです。 デメリット 学習コストが高い(ように感じた) 実際に生成される図を見ながらでないと整った図が書けない
Redis のインストール パッケージから導入する方法と、ソースからインストールする2種類の方法があります 各自の環境制約を踏まえて導入手段を検討してください パッケージから導入する場合 Redis は標準パッケージに含まれていません(2015/11/15時点) サードパーティのリポジトリをインストールするので、標準リポジトリしか利用できない環境では後述の「ソースからインストール」にスキップしてください サードパーティのリポジトリをセットアップします remi と EPEL リポジトリが必要です導入手順はこちら メモリ管理に tcmalloc を利用しているため gperftools-libs もインストールします
# Create a new session and store it as a JSON document > JSON.SET session:12345 . ‘{“user_id”: 1001, “login_time”: “2024-02-27T10:00:00Z”, “data”: {“last_page_visited”: “/home”, “preferences”: {“theme”: “dark”}}}’ “OK” # Fetch the entire session > JSON.GET session:12345 “{\”user_id\”:1001,\”login_time\”:\”2024-02-27T10:00:00Z\”,\”data\”:{\”last_page_visited\”:\”/home\”,\”preferences\”:{\”theme\”:\
Welcome to Doma 2¶ Doma 2 is a database access framework for Java 8+. Doma has various strengths: Verifies and generates source code at compile time using annotation processing. Provides type-safe Criteria API. Supports Kotlin. Uses SQL templates, called “two-way SQL”. Has no dependence on other libraries. This document consists of following sections: User Documentation About Doma Links Help impro
顧客番号 が決まれば 営業社員番号 が決まるとき、第二正規形ではない。 1. 顧客番号はキーの真部分集合である 2. 営業社員番号はキーの構成要素ではない つまり、キーの一部から(候補)キーではない項目に従属性があったらダメ。 A002 の行で営業社員番号だけ変更すると、顧客番号1001 => S0010 の関連が崩れる。 通常、第三正規形にするまでの中間形式として表れる。第二正規形にあまり意味はない。 第三正規形 X → A のとき、次のどちらかを満たす Xはキー Aがキーの構成要素 第三正規形ではない例 顧客番号 届け先ラベル 郵便番号 都道府県 住所
前回の記事「Excelだけに存在する日付」では、Excelにだけ存在する、実在しない日付形式について書きました。 今回も日付つながりで、データベースの日付時刻型の話を書きたいと思います。 ほとんどのデータベースは、日付時刻型を持っています。 ところが日付時刻型は、数値型や文字型のようにどのデータベースでもほぼ共通、ということはなく、利用可能な範囲、分解能(秒、ミリ秒、マイクロ秒など…)から内部のデータの持ち方まで、データベースや型によって様々です(「範囲」が決まっているのは、日付時刻型に限りませんが)。 日付時刻型の内部値は、前回お伝えしたとおり「ある特定の日付を基準に、その日付からの経過日数で表す」ものがほとんどかと思います。 前回は「経過日数」と書きましたが、データベースによっては「経過秒数」だったり、現在のOracle Databaseのように全く異なる内部管理を行っている例もあった
主にPostgreSQLで、アプリケーションがスケールしていくことを考慮に入れずに後で困ることになりがちな設計のポイント。今後巨大にスケールする必要が分かりきっている際には特に注意すべき点。 開発者として仕事を始める時には、参ってしまうほど覚えなくてはいけないことがあります。まず最初に言語自体、それから使っているフレームワーク特有のクセ、さらにその後(あるいはその前)にフロントエンド開発を織り交ぜ、そしてその先でデータをどこに保存するかを決めなくてはなりません。 最初の頃は、素早く身につけるべきことが多すぎて、アプリケーションのデザインにおいてデータベースは後から付け足すものになりがちです(おそらくこれはエンドユーザーエクスペリエンスに影響がないからでしょう)。その結果、データベースが動き始めてから直さなくてはならない数々の悪い習慣が存在しています。ここでは、そのうちのいくつかについて概要
背景 ここ最近、データアクセスはS2JDBC(2WaySQL)で開発をしていたということもあり、Spring Data JPAのようにクラスファイルの中に文字列として"select column1,column2 from table・・・"みたいな書き方に違和感を覚えていました。そんな時にDoma2の存在を知る機会があったので、ちょっとやってみようかなと思い試してみました。 ちなみに、今の現場ではSpring Boot + MyBatisでやっていますが、 パッと見た感じxmlでマッピング書くのがめんどくさそう xmlがjavaクラスへの依存を持ってしまっている(resultMapとか)、etc javaとSQLを分離したい そもそもあまり詳しくない ってのもあり、やっぱ慣れてる2WaySQLだなーって思っています。 ※他のO/Rマッパーをもう少し理解すれば考え方は変わってくるかもしれま
はじめに SpringBootでDOMA2使ってみようと思い環境構築してたら、意外と躓いたので、手順を記述しておきます。 SpringBoot2 DOMA2 H2 Eclipse4.7 設定 プロジェクト作成 Eclipse開いて パッケージ・エクスプローラーで右クリック 新規 プロジェクト Springスターター・プロジェクト 名前に「sample」と入力 ※任意 グループに「jp.co.sample」と入力 ※任意 パッケージに「jp.co.sample」と入力 ※任意 「次へ」を押下 「web」にチェック 「次へ」を押下 「完了」を押下 ※ここまで終了したらプロジェクトが動くか確認しておいたほうがいいかもしれません。 POM.xmlに依存関係記述 DOMAの依存関係 <dependency> <groupId>org.seasar.doma.boot</groupId> <artif
こんにちは、AWSではcodedeployが好きな中村です。 IT業界はドッグイヤーと言われて久しいですが、技術の進歩は目まぐるしく進んでいます。 それに伴い、世の中が求めるWebサービス・スマホアプリのスピード感は日々増しています。 ページを表示するのに2秒以上かけてはいけない、、0.1秒表示速度が遅くなるとxxx件のユーザーが離脱する。。など、いろいろな通説が出てきているほどです。 今回はそんな世の中が求めるWebサービスの表示スピードを劇的に速くできるサービス「Elastichsearch」について調べてみました。 このサービスはFacebookやGithubでも採用されているサービスですので、知っておいて損はないです。 ではまず、ElasicSearchとはどんなサービスでしょうか? ■Elasticsearchとは ・概要 Elasticsearch(エラスティックサーチ)とは、
Spring Data JPAには、Repositoryインターフェースに宣言されたメソッドを、その名前からクエリを生成して自動的に生成してくれるお便利機能があります。どんな命名規則があるのか分からなかったのでメモ。 基本的にはマニュアルの要約です。 環境 Java ・・・ jdk1.8 Spring Boot ・・・ 1.3.5-RELEASE DB ・・・ MySQL 5.7 構文 以下の3つの要素を規則に従って組み合わせたメソッド名をRepositoryインターフェースに宣言することで、自動実装が利用可能になります。 プレフィックス(find...By read...By query...By count...By get...By) キーワード フィールド名 以下のエンティティを例に使います。 @Entity public class Employee implements Ser
基本この2つのメソッドは同じ値を返す実装に各JDBCドライバはなってると思うのだけど(少ない私の経験上は今までそうだった)、mysql-connector 5.1.6で初めて違うパターンに巡り合いました。 「select xxx as yyy from zzz」 なんてSQLを書くとまあ、「yyy」が返ってくるのを期待するわけなんですが、mysql-connector 5.1.6では、getColumnLabel()だと「yyy」、getColumnName()だと「xxx」。 数年前MySQL使った時はこんな結果じゃなかった気がするなあ。 Java SE 6 から採用のJDBC4.0がらみの変更やもしれん(未確認)。Java SE 6のJavaDocのコメントを見る限りにおいてはこれが正しい動作なような気がするし。 まあDAOのライブラリでも自作しないと触らない部分ではあるとは思いますが
WindowsにMariaDBをインストールする手順についてお伝えいたします。 ファイルのダウンロード MariaDBのインストールファイルをダウンロードするために、次のサイトに移動します。 MariaDB.org – Supporting continuity and open collaboration 「Download」をクリックします。 「Download」をクリックします。 「Download 10.2.8 Stable Now!」をクリックします。ダウンロードの時期によっては、MariaDBのバージョンがここでお伝えしたものと異なる可能性が高いですが、基本的には安定板であるStableを選択した方が良いと思います。 32bit版のインストールファイルか64bit版のインストールファイルかを選択します。ご使用のOS状況に合わせてクリックしてください。 名前などを訊かれますが、ス
MariaDB Enterprise Server: Enhanced, hardened and secured for mission-critical applications MariaDB Enterprise Server is a hardened version of MariaDB Community Server built for production deployments. It undergoes extensive QA, is configured for production by default and includes enterprise features to improve operating efficiency at scale and support the most secure environments. MariaDB Enterpr
やってみた MySQLの照合順序、UTF-8の日本語で使える照合順序はいくつかあるけど、 実際にどんなマッチの仕方をするのかわからなかったので、ちょっとやってみた。 ちなみに、MySQLのUTF-8で日本語を扱う場合に使用可能な照合順序はしたの3つ。 utf8_bin utf8_general_ci utf8_unicode_ci 確認したかったのは、半角・全角、小文字・大文字がどんな感じでマッチするのかという事。 ながーいので、結果を utf8_bin キャラクターコードが完全に一致するもののみマッチする。 utf8_general_ci アルファベットの大文字・小文字は区別せずにマッチする。 ただし、区別しない文字は、半角は半角の大文字・小文字、全角は全角の大文字・小文字のみ。 半角小文字と全角小文字同士はマッチしない。 utf8_unicode_ci 下記がマッチする。 アルファベッ
~性能を最大限に引き出すための設計・開発・運用~ 永安 悟史 本記事は、技術評論社 WEB+DB PRESS Vol.63 で掲載されたものを、著者と出版社の許可を得て転載したものです。なお、一部 記述に変更のある箇所もあります。 【試験】サービス開始に向けて、確認・記録する データベース開発の試験フェーズでは、機能的な動作確認は当然ながら、パフォーマンスやバックアップ/リストアなどの、いわゆる「非機能試験」を行うことになります。本節では、データベース特有の試験について、いくつかのポイントを解説します。 【べし】 SQLの実行計画(EXPLAIN)を確認すべし まず、アプリケーションから実行されるSQLは、EXPLAINコマンドなどを用いて、実行計画を確認しておく必要があります(リスト5)。動的なSQL(アプリケーションの内部でSQL文を組み立てるようなケース)の場合は、SQLの実行ログを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く