teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

試したことの追記

2020/05/28 22:35

投稿

shunsena
shunsena

スコア16

title CHANGED
@@ -1,1 +1,1 @@
1
- scala,playframeworkでデータベースアクセス際のエラー発生(object db is not a member of package play.api)
1
+ playframeworkにてanorm利用ができない
body CHANGED
@@ -1,102 +1,26 @@
1
- scala,playframeworkを学習している初学者です。
2
- 現在書籍の「scala,javaフレームワーク Playframework入門」を読みながら学習しているのですがJDBCによるデータベースアクセスサンプルコード記述しているのですがエラーが発生しており,調べていますが解決に至っておりません。
1
+ 現在書籍を読みながらplayframeworkを学習中なのですが中でAnorm利用すところがあるのですがAnormを使用ることできません。
3
2
 
4
-
5
- ```scala
6
- #HelloController.scala
7
- package controllers
8
-
9
- import java.sql._
10
- import javax.inject._
11
- import play.api._
12
- import play.api.mvc._
13
- import play.api.data._
14
- import play.api.data.Forms._
15
- import play.api.db._
16
-
17
- @Singleton
18
- class HelloController @Inject()(
19
- db: Database,
20
- cc: MessagesControllerComponents
21
- )extends MessagesAbstractController(cc){
22
-
23
- def index() = Action{implicit request =>
24
- var msg = "database record:<br><ul>"
25
- try{
26
- //アクセス処理
27
- db.withConnection{conn =>
28
- val stmt = conn.createStatement
29
- val rs = stmt.executeQuery("SELECT * from people")
30
- while(rs.next){
31
- msg += "<li>" + rs.getInt("id") + ":" + rs.getString("name") + "</li>"
32
- }
33
- msg += "</ul>"
34
- }
35
- } catch {
36
- // 例外処理
37
- case e:SQLException =>
38
- msg = "<li>no record....</li>"
39
- }
40
- Ok(views.html.hello(msg))
41
- }
42
-
43
- }
44
3
  ```
45
- ```
46
4
  #build.sbt
47
- name := """sample3"""
48
- organization := "com.example"
49
5
 
50
- version := "1.0-SNAPSHOT"
51
-
52
- lazy val root = (project in file(".")).enablePlugins(PlayScala)
53
-
54
- scalaVersion := "2.13.2"
55
-
56
- libraryDependencies += guice
57
- libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test
58
-
59
- libraryDependencies += "com.h2database" % "h2" % "1.4.197"
6
+ libraryDependencies += "org.playframework.anorm" %% "anorm" % "2.6.2"
60
- libraryDependencies += evolutions
61
- libraryDependencies += jdbc
62
7
  ```
63
8
 
64
- ```ここに言語を入力
65
- # application.conf
9
+ 上記を追加し、controllersにて
66
10
 
67
- db.default.driver=org.h2.Driver
11
+ import anorm._
68
- db.default.url="jdbc:h2:mem:database"
69
- ```
70
12
 
71
- ```html
13
+ とインポート文を書いても
72
- #hello.scala.html
14
+ cannot resolve symbol anorm
15
+ とエラーが表示されます。
73
16
 
74
- @(message: String)
17
+ anormの使用方法を検索し、
18
+ build.sbtの追記方法をいろいろ試しましたが解決に至っておりません。
75
19
 
76
- @main("wellcom database"){
77
- <p>@Html(message)</p>
20
+ playframeworkの公式文を読むと
78
- }
79
- ```
80
- ```
81
- # routes
82
- GET /hello controllers.HelloController.index()
83
- ```
84
- ```sql
85
- # conf/evolutions.default/1.sql
86
- # --- !Ups
21
+ build.sbtに
87
- create table people(
88
- id int auto_increment primary key,
22
+ libraryDependencies ++= Seq(
89
- name varchar(255) not null,
23
+ jdbc,
90
- mail varchar(255) not null,
91
- tel varchar(255)
24
+ anorm
92
- );
25
+ )
93
-
94
- insert into people values (default, 'taro', 'taro@yamada', '9999-9999');
95
- insert into people values (default, 'hanako', 'hanako@flower', '8888-8888');
96
- insert into people values (default, 'sachiko', 'sachiko@happy', '7777-7777');
97
-
98
- # ---- !Downs
99
- drop table people
100
- ```
101
- dbを使用するための設定がおかしいのでしょうか?
102
- 通りに記述しているのですがまだまだ記述内容自体に理解が低いため、原因が特定できておりませ。
26
+ ように記述とありますがこちらも同じく使用できませ