apache_conf 播放2.xからPostgresqlに接続してAnormでCRUD操作するには
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache_conf 播放2.xからPostgresqlに接続してAnormでCRUD操作するには相关的知识,希望对你有一定的参考价值。
import play.core.StaticApplication
new StaticApplication(new java.io.File("."))
import play.api.db._
import play.api.Play.current
import anorm._
DB.withConnection { implicit c =>
val result: Boolean = SQL("Select 1").execute()
println("result =" + result)
}
//usersテーブルにレコードを1件登録
DB.withConnection { implicit c =>
val count = SQL(
"""
insert into users(name,email,password)
values({name},{email},{password})
"""
).on('name -> "taro",
'email -> "taro@classmethod.jp",
'password -> "taropass").executeInsert()
println("count = " + count)
}
//id:1のレコードを更新
DB.withConnection { implicit c =>
val count = SQL(
"""
update users set name={name} where id={id}
"""
).on('name -> "hanako", 'id -> 6).executeUpdate()
println("updateCount = " + count)
}
//id:1のレコードを削除
DB.withConnection { implicit c =>
val count: Int = SQL(
"""
delete from users where id = {id}
"""
).on('id -> 1).executeUpdate()
println("deleteCount = " + count)
}
// Postgresのplaydbにinsert
insert into users values(1,'taro','taro@classmethod.jp','taropass',now());
insert into users values(2,'hanako','hanako@classmethod.jp','hanakopass',now());
insert into users values(3,'mike','mike@mike.com','mikepass',now());
insert into post values(100,1,'title1','body1',now());
insert into post values(101,1,'title2','body2',now());
insert into post values(102,2,'title3','body3',now());
// Stream APIを使用してユーザーの一覧を取得してリストとして返す
val selectQuery = SQL("select * from users")
val result = DB.withConnection { implicit c =>
// Stream[Row] からList[(Long,(String,String))]に変換
selectQuery().map(row =>
row[Long]("id") -> (row[String]("name") , row[String]("email"))).toList
}
import anorm.SqlParser._
// 取得できた値の型が「List[Int~String~String]」となっており、このままでは使いにくい
val result:List[Int~String~String] = DB.withConnection { implicit c =>
SQL("select * from users").as( int("id") ~ str("name") ~ str("email") * )
}
// flatten関数を適用し、タプル(Tuple)型のリストに変換
val result = DB.withConnection { implicit c =>
SQL("select * from users").as( int("id") ~ str("name") ~ str("email") map(flatten) * )
}
// 取得結果を任意のクラスのリストにする
// emailの値に応じてクラスの型を切り替えています
case class CmEmp(name:String)
case class Person(name:String)
val result = DB.withConnection { implicit c =>
SQL("select * from users").as( int("id") ~ str("name") ~ str("email") map {
//メールアドレスに@classmethod.jpが含まれていたら、CmEmpオブジェクトにする
case id~name~email if(email.contains("@classmethod.jp")) => CmEmp(name)
case id~name~email => Person(name)
} *)
}
# --- !Ups
create table post (
id SERIAL,
userId INTEGER not null,
title varchar(100) not null,
body text,
createDate timestamp default current_timestamp,
primary key(id),
foreign key(userId) references users(id)
);
# --- !Downs
drop table post;
# --- !Ups
create table users(
id SERIAL,
name varchar(100),
email varchar(100),
password varchar(100),
createDate timestamp default current_timestamp,
primary key(id));
# --- !Downs
drop table users;
以上是关于apache_conf 播放2.xからPostgresqlに接続してAnormでCRUD操作するには的主要内容,如果未能解决你的问题,请参考以下文章
apache_conf .htaccess用于在html文件/ html中运行phpファイル内からphpを実行する为の.htaccess
apache_conf UAを判别し,モバイルデバイスからのアクセスなら,専用サイト(ディレクトリ)へ诱导する。
apache_conf 使用ApacheConnector为Jersey 2.x客户端配置代理
scss 上から明→暗グラデーション/上から暗→明グラデーション
だから和そこで有什么区别
から VS ので