ScalaMatsuri 2019 http://2019.scalamatsuri.org/index_en.html
名前¶ DBIx::Class::Manual::Cookbook - レシピいろいろ レシピ¶ 検索¶ ページ処理された結果セット¶ When you expect a large number of results, you can ask DBIx::Class for a paged resultset, which will fetch only a small number of records at a time: 結果セットが膨大になりそうなら、ページ処理された結果をDBIx::Classで取得できます。 一回に、少しのレコードしかとってきません: my $rs = $schema->resultset('Artist')->search( undef, { page => 1, # page to return (defaults to 1) rows => 10, #
DBIx::Encoding でPerlとDB間の文字コード & utf8 flagを透過的に扱う - JPerl Advent Calendar 2009 Perl に関するちょっとした Tips をのっけてみるよ。ちゃんと続くかな? はじめに はじめまして、myfinderといいます。 Casual Trackの記事をupしたときに話が出たので、記事を書いてみたいと思います。 今回ご紹介するモジュールは DBIx::Encoding です。 DBIx::Encodingは非常に小粒なモジュールですが、BKだなと自分でも思っています。 cho45さんの紹介されているモジュールと割と趣が近い気がします。 Casual Trackのxaicronさんの記事にもあるように、いわゆるモダンなPerl開発ではソースコードをUTF-8で記述し「use utf8;」し、文字列は「入力時にdecode、
以下がこのデータベースを作成するための際のSQLです。このSQLをUTF8で保存し、mysqlのデータベース作成権限のあるユーザ(管理者など)で実行します。 /* データベースとユーザを作成 */ DROP DATABASE IF EXISTS blog; CREATE DATABASE blog CHARACTER SET utf8; GRANT ALL ON blog.* TO blog_user IDENTIFIED BY 'blog_pass'; /* テーブルを作成 */ use blog; DROP TABLE IF EXISTS blog_site; CREATE TABLE blog_site ( site_id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, url TEXT, description TEXT, dat
DBはUTF8だけど、携帯サイトなどでShift_JISも使いたい。 DBICをShift_JISで上手く使うには Template::Plugin::Jcodeを使う。 TTビューはアクセサの最後に.jcode.sjisを付ける。フォームからの入力は、手動変換。 Data::FormValidatorのfiltersでUnicode::Japaneseのcode refを指定して一括変換してしまうのがよいかも。 Catalyst::Plugin::Unicode::Encodingで入出力の内外を自動変換。 DBIx::Class::InflateColumnを使って自動変換。変換するカラムを指定する必要があるため、少し面倒。 (DBIx::Class::UTF8Columnsも同じ手間) 2が簡単そうだけど、UTF8とShift_JIS用にスキーマを二重に作るのも面倒だし、携帯のキャリ
This document provides an introduction and overview of DBIx::Class, an ORM (object relational mapper) for Perl. It discusses setting up tables for an authors and books example database, and performing CRUD (create, read, update, delete) operations both manually using SQL and using DBIx::Class. It also covers creating models with Schema::Loader, debugging, overloading result and result set classes,
2008年07月06日18:51 Linux Perl シェルスクリプトでCatalystのDBスキーマを作る CatalystのModelにはDBICを使うのがデフォルトですよね? ・・というわけで、早速Catalyst::Model::DBIC::Schemaを使ってDBスキーマを作ってみました。というか復習ですね。(*´Д`*) そもそも、Catalyst::Model::DBIC::Schemaを使ってDBスキーマを作るには、以下の3つの方法があるそうです。ふむふむ。 1. 既に存在するSchemaクラスを使用 2. Schema::Loaderで既存のDBからSchemaクラスを生成 3. Schema::Loaderで既存のDBからSchema::Loaderクラスを生成 今回は2番の方法を使うことにしました。3番と迷ったんですけど、毎回読みにいくのもあれかな〜と思ったので。
DBIx::Class::Schema::Loaderを入れれば、その上の3つもインストールされる。DBDはどれを使うか聞かれるがデフォルトは「インストールしない」なのでリターン連打しないように注意して。ほかにも物凄い大量の依存パッケージをインストールする。 CatalystのDBIサポート関連クラスをCPANでインストール 適当なテーブルを作る。 CREATE TABLE books ( id INTEGER NOT NULL AUTO_INCREMENT, isbn VARCHAR(13), title VARCHAR(255) NOT NULL, author VARCHAR(255), summary TEXT, PRIMARY KEY(id) ) character SET utf8 type=innoDB; テスト用に適当なデータもブッ込んでおく insert into boo
DBIx::Skinnyで簡単に使えるpagerが実装されていない主な理由は、 http://perl-users.jp/articles/advent-calendar/2009/dbix-skinny/19.html とかに書いているんですが、 管理画面にありがちな データを様々な条件で検索するページみたいなのを書くときにはSQLを直書きするのはつらくて、DBICみたいにresultsetを条件によってwhere節を追加するのが楽なこともあります。そういうページに限ってpagingの処理は必要になるけど、ひとつひとつSQLを直接書いてPagerを生成するとかなってくるとなかなかめんどくさいです。 http://d.hatena.ne.jp/nekokak/20090924/1253761408 とかいうのをselectするたびに書いてると、ちょっとごちゃごちゃして見にくいし、結構長くて
DBIx::Skinnyにはネイティブにpagingをしてくれる便利機能はありません。 (最近ないないばっかり言ってるな) DBICとかだと$rs->pagerみたいにしてData::Pageのオブジェクトを返してくれるんですが、 Data::Pageのオブジェクトを作る際に、内部でcountを発行しています。 pagingするにはSQLにLIMIT/OFFSETをかけてると、思うのでLIMIT/OFFSETを掛けなかった際の トータルな件数を取るためですね。 結構このcountが馬鹿にならないくらい内部で発行されることがあるのでSkinnyではあえてサポートしなかったです。 あと、独自にSQLを書かせる事をお題目にあげているので、 独自に書かれたSQLを内部でごちゃごちゃしてcount発行するとかヤッテラレナイてのもあります。 ただ、アプリを作ってる時にpagingは必須なのでどうすれば
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く