質問編集履歴

1

試したことの追記

2020/05/28 22:35

投稿

shunsena
shunsena

スコア16

test CHANGED
@@ -1 +1 @@
1
- scala,playframeworkでデータベースアクセスの際のエラー発生(object db is not a member of package play.api)
1
+ playframeworkにてanormの利用ができない
test CHANGED
@@ -1,203 +1,51 @@
1
- scala,playframeworkを学習している初学者です。
2
-
3
- 現在書籍の「scala,javaフレームワーク Playframework入門」読みながら学習しているのですがJDBCによるデータベースアクセスサンプルコード記述しているのですがエラーが発生しており,調べていますが解決に至っておりません。
1
+ 現在書籍を読みながらplayframeworkを学習中なのですが中でAnorm利用すところがあるのですがAnormを使用ることできません。
4
2
 
5
3
 
6
-
7
-
8
-
9
- ```scala
10
-
11
- #HelloController.scala
12
-
13
- package controllers
14
-
15
-
16
-
17
- import java.sql._
18
-
19
- import javax.inject._
20
-
21
- import play.api._
22
-
23
- import play.api.mvc._
24
-
25
- import play.api.data._
26
-
27
- import play.api.data.Forms._
28
-
29
- import play.api.db._
30
-
31
-
32
-
33
- @Singleton
34
-
35
- class HelloController @Inject()(
36
-
37
- db: Database,
38
-
39
- cc: MessagesControllerComponents
40
-
41
- )extends MessagesAbstractController(cc){
42
-
43
-
44
-
45
- def index() = Action{implicit request =>
46
-
47
- var msg = "database record:<br><ul>"
48
-
49
- try{
50
-
51
- //アクセス処理
52
-
53
- db.withConnection{conn =>
54
-
55
- val stmt = conn.createStatement
56
-
57
- val rs = stmt.executeQuery("SELECT * from people")
58
-
59
- while(rs.next){
60
-
61
- msg += "<li>" + rs.getInt("id") + ":" + rs.getString("name") + "</li>"
62
-
63
- }
64
-
65
- msg += "</ul>"
66
-
67
- }
68
-
69
- } catch {
70
-
71
- // 例外処理
72
-
73
- case e:SQLException =>
74
-
75
- msg = "<li>no record....</li>"
76
-
77
- }
78
-
79
- Ok(views.html.hello(msg))
80
-
81
- }
82
-
83
-
84
-
85
- }
86
-
87
- ```
88
4
 
89
5
  ```
90
6
 
91
7
  #build.sbt
92
8
 
93
- name := """sample3"""
94
-
95
- organization := "com.example"
96
9
 
97
10
 
98
-
99
- version := "1.0-SNAPSHOT"
100
-
101
-
102
-
103
- lazy val root = (project in file(".")).enablePlugins(PlayScala)
104
-
105
-
106
-
107
- scalaVersion := "2.13.2"
108
-
109
-
110
-
111
- libraryDependencies += guice
112
-
113
- libraryDependencies += "org.scalatestplus.play" %% "scalatestplus-play" % "5.0.0" % Test
114
-
115
-
116
-
117
- libraryDependencies += "com.h2database" % "h2" % "1.4.197"
11
+ libraryDependencies += "org.playframework.anorm" %% "anorm" % "2.6.2"
118
-
119
- libraryDependencies += evolutions
120
-
121
- libraryDependencies += jdbc
122
12
 
123
13
  ```
124
14
 
125
15
 
126
16
 
127
- ```ここに言語を入力
128
-
129
- # application.conf
17
+ 上記を追加し、controllersにて
130
18
 
131
19
 
132
20
 
133
- db.default.driver=org.h2.Driver
21
+ import anorm._
134
-
135
- db.default.url="jdbc:h2:mem:database"
136
-
137
- ```
138
22
 
139
23
 
140
24
 
141
- ```html
25
+ とインポート文を書いても
142
26
 
143
- #hello.scala.html
27
+ cannot resolve symbol anorm
28
+
29
+ とエラーが表示されます。
144
30
 
145
31
 
146
32
 
147
- @(message: String)
33
+ anormの使用方法を検索し、
34
+
35
+ build.sbtの追記方法をいろいろ試しましたが解決に至っておりません。
148
36
 
149
37
 
150
38
 
151
- @main("wellcom database"){
39
+ playframeworkの公式文を読むと
152
40
 
153
- <p>@Html(message)</p>
41
+ build.sbtに
154
42
 
155
- }
43
+ libraryDependencies ++= Seq(
156
44
 
157
- ```
45
+ jdbc,
158
46
 
159
- ```
47
+ anorm
160
48
 
161
- # routes
49
+ )
162
50
 
163
- GET /hello controllers.HelloController.index()
164
-
165
- ```
166
-
167
- ```sql
168
-
169
- # conf/evolutions.default/1.sql
170
-
171
- # --- !Ups
172
-
173
- create table people(
174
-
175
- id int auto_increment primary key,
176
-
177
- name varchar(255) not null,
51
+ のように記述とありますがこちらも同じく使用できません。
178
-
179
- mail varchar(255) not null,
180
-
181
- tel varchar(255)
182
-
183
- );
184
-
185
-
186
-
187
- insert into people values (default, 'taro', 'taro@yamada', '9999-9999');
188
-
189
- insert into people values (default, 'hanako', 'hanako@flower', '8888-8888');
190
-
191
- insert into people values (default, 'sachiko', 'sachiko@happy', '7777-7777');
192
-
193
-
194
-
195
- # ---- !Downs
196
-
197
- drop table people
198
-
199
- ```
200
-
201
- dbを使用するための設定がおかしいのでしょうか?
202
-
203
- 本の通りに記述しているのですがまだまだ記述内容自体に理解が低いため、原因が特定できておりませ。