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 ので