 Afrikaans
          Afrikaans
         Akan
          Akan
         Albanian
          Albanian
         Amharic
          Amharic
         Arabic
          Arabic
         Armenian
          Armenian
         Azerbaijani
          Azerbaijani
         Basque
          Basque
         Belarusian
          Belarusian
         Bemba
          Bemba
         Bengali
          Bengali
         Bihari
          Bihari
         Bosnian
          Bosnian
         Breton
          Breton
         Bulgarian
          Bulgarian
         Cambodian
          Cambodian
         Catalan
          Catalan
         Cebuano
          Cebuano
         Cherokee
          Cherokee
         Chichewa
          Chichewa
         Chinese (Simplified)
          Chinese (Simplified)
         Chinese (Traditional)
          Chinese (Traditional)
         Corsican
          Corsican
         Croatian
          Croatian
         Czech
          Czech
         Danish
          Danish
         Dutch
          Dutch
         English
          English
         Esperanto
          Esperanto
         Estonian
          Estonian
         Ewe
          Ewe
         Faroese
          Faroese
         Filipino
          Filipino
         Finnish
          Finnish
         French
          French
         Frisian
          Frisian
         Ga
          Ga
         Galician
          Galician
         Georgian
          Georgian
         German
          German
         Greek
          Greek
         Guarani
          Guarani
         Gujarati
          Gujarati
         Haitian Creole
          Haitian Creole
         Hausa
          Hausa
         Hawaiian
          Hawaiian
         Hebrew
          Hebrew
         Hindi
          Hindi
         Hmong
          Hmong
         Hungarian
          Hungarian
         Icelandic
          Icelandic
         Igbo
          Igbo
         Indonesian
          Indonesian
         Interlingua
          Interlingua
         Irish
          Irish
         Italian
          Italian
         Japanese
          Japanese
         Javanese
          Javanese
         Kannada
          Kannada
         Kazakh
          Kazakh
         Kinyarwanda
          Kinyarwanda
         Kirundi
          Kirundi
         Kongo
          Kongo
         Korean
          Korean
         Krio (Sierra Leone)
          Krio (Sierra Leone)
         Kurdish
          Kurdish
         Kurdish (Soranî)
          Kurdish (Soranî)
         Kyrgyz
          Kyrgyz
         Laothian
          Laothian
         Latin
          Latin
         Latvian
          Latvian
         Lingala
          Lingala
         Lithuanian
          Lithuanian
         Lozi
          Lozi
         Luganda
          Luganda
         Luo
          Luo
         Luxembourgish
          Luxembourgish
         Macedonian
          Macedonian
         Malagasy
          Malagasy
         Malay
          Malay
         Malayalam
          Malayalam
         Maltese
          Maltese
         Maori
          Maori
         Marathi
          Marathi
         Mauritian Creole
          Mauritian Creole
         Moldavian
          Moldavian
         Mongolian
          Mongolian
         Myanmar (Burmese)
          Myanmar (Burmese)
         Montenegrin
          Montenegrin
         Nepali
          Nepali
         Nigerian Pidgin
          Nigerian Pidgin
         Northern Sotho
          Northern Sotho
         Norwegian
          Norwegian
         Norwegian (Nynorsk)
          Norwegian (Nynorsk)
         Occitan
          Occitan
         Oriya
          Oriya
         Oromo
          Oromo
         Pashto
          Pashto
         Persian
          Persian
         Polish
          Polish
         Portuguese (Brazil)
          Portuguese (Brazil)
         Portuguese (Portugal)
          Portuguese (Portugal)
         Punjabi
          Punjabi
         Quechua
          Quechua
         Romanian
          Romanian
         Romansh
          Romansh
         Runyakitara
          Runyakitara
         Russian
          Russian
         Samoan
          Samoan
         Scots Gaelic
          Scots Gaelic
         Serbian
          Serbian
         Serbo-Croatian
          Serbo-Croatian
         Sesotho
          Sesotho
         Setswana
          Setswana
         Seychellois Creole
          Seychellois Creole
         Shona
          Shona
         Sindhi
          Sindhi
         Sinhalese
          Sinhalese
         Slovak
          Slovak
         Slovenian
          Slovenian
         Somali
          Somali
         Spanish
          Spanish
         Spanish (Latin American)
          Spanish (Latin American)
         Sundanese
          Sundanese
         Swahili
          Swahili
         Swedish
          Swedish
         Tajik
          Tajik
         Tamil
          Tamil
         Tatar
          Tatar
         Telugu
          Telugu
         Thai
          Thai
         Tigrinya
          Tigrinya
         Tonga
          Tonga
         Tshiluba
          Tshiluba
         Tumbuka
          Tumbuka
         Turkish
          Turkish
         Turkmen
          Turkmen
         Twi
          Twi
         Uighur
          Uighur
         Ukrainian
          Ukrainian
         Urdu
          Urdu
         Uzbek
          Uzbek
         Welsh
          Welsh
         Wolof
          Wolof
         Xhosa
          Xhosa
         Yiddish
          Yiddish
         Yoruba
          Yoruba
         Zulu
          Zulu
        | tag 259 00:26:59,000 --> 00:27:05,000 the first column is the index column which is... 260 00:27:06,200 --> 00:27:18,000 which displays the numbers of rows in alphanumeric order 261 00:27:20,300 --> 00:27:23,100 so we can use this... 262 00:27:34,000 --> 00:27:36,600 status.index 263 00:27:36,700 --> 00:27:37,700 okay 264 00:27:38,400 --> 00:27:46,320 Now let's refresh the page to see how it works 265 00:27:58,200 --> 00:27:59,180 you can see 266 00:27:59,500 --> 00:28:03,480 the index appears here: 0 1 2 3 267 00:28:03,900 --> 00:28:10,800 which corresponds to 4 rows in the database table 268 00:28:11,000 --> 00:28:17,600 And you can see here: in the users table we have 4 rows: 1 2 3 4 269 00:28:19,800 --> 00:28:21,340 and... 270 00:28:22,600 --> 00:28:28,200 we can +1 to make it starts form 1 instead of 0 271 00:28:28,700 --> 00:28:37,400 and the next column is the ID of the user 272 00:28:38,000 --> 00:28:43,000 user.id 273 00:28:45,700 --> 00:28:54,000 user is the variable name here - that represents a Users object in the listUsers collection 274 00:28:54,500 --> 00:29:02,200 and you can use the object-oriented syntax here: user. and followed by a field name 275 00:29:03,900 --> 00:29:07,920 so in our Users class... 276 00:29:08,300 --> 00:29:10,900 userId - our field name is userId 277 00:29:10,900 --> 00:29:12,000 okay 278 00:29:14,400 --> 00:29:16,400 userId 279 00:29:17,800 --> 00:29:22,220 Now, refresh the page 280 00:29:23,000 --> 00:29:25,340 refresh in Chrome browser 281 00:29:27,900 --> 00:29:32,000 you see ID: 4-2-3-1 the 282 00:29:35,600 --> 00:29:38,600 the next column is email 283 00:29:39,900 --> 00:29:42,100 email 284 00:29:44,400 --> 00:29:49,540 user.email 285 00:29:49,700 --> 00:29:51,240 okay 286 00:29:53,800 --> 00:29:55,565 save the file and refresh 287 00:29:55,700 --> 00:29:56,700 you see 288 00:29:56,900 --> 00:30:03,759 the email appears here: david, sophia, you and nam 289 00:30:05,300 --> 00:30:08,160 david, sophia, you and nam 290 00:30:09,300 --> 00:30:23,800 you can see the order is different because in the query we order the result by the full name of the user 291 00:30:24,600 --> 00:30:30,840 you can see the Users class here 292 00:30:31,100 --> 00:30:34,800 select u from Users u order by u.fullName 293 00:30:35,000 --> 00:30:37,540 and now let's display the full name 294 00:30:37,800 --> 00:30:38,700 | 295
00:30:39,300 --> 00:30:43,340
${user.fullName}
296
00:30:52,400 --> 00:30:54,240
let's refresh the page
297
00:30:54,500 --> 00:30:55,500
you see
298
00:30:55,700 --> 00:30:59,800
full  name: David Beckham, Miss Sophia,  Mr President and Nam Ha Minh
299
00:31:00,200 --> 00:31:08,700
this is sorted by the full name field in ascending oder: D M M N
300
00:31:08,800 --> 00:31:10,000
you see
301
00:31:13,200 --> 00:31:16,100
and as per design, in the Actions column, we...
302
00:31:16,200 --> 00:31:20,040
for each user we have the Edit and Delete link
303
00:31:20,100 --> 00:31:21,500
okay
304
00:31:28,700 --> 00:31:31,100
Edit
305
00:31:34,300 --> 00:31:37,200
a space, and..
306
00:31:40,600 --> 00:31:42,180
Delete
307
00:31:45,700 --> 00:31:48,460
Now let's refresh the page
308
00:31:49,800 --> 00:31:50,820
you see
309
00:31:51,300 --> 00:31:55,000
that looks similar to the design
310
00:31:55,600 --> 00:31:57,040
you see
311
00:31:59,600 --> 00:32:06,600
of course later, we will improve the look and feel of our page
312
00:32:07,000 --> 00:32:08,640
For now, you...
313
00:32:09,100 --> 00:32:15,200
you focus on make it works first and make it looks better later
314
00:32:15,300 --> 00:32:16,500
okay
315
00:32:21,900 --> 00:32:28,000
let's specify the cellpadding attribute...
316
00:32:28,800 --> 00:32:36,000
for the table equals 5 to make more spaces in the cells of the table
317
00:32:36,400 --> 00:32:37,540
refresh
318
00:32:38,000 --> 00:32:44,040
and you see, it looks better, right?
319
00:32:50,800 --> 00:32:56,520
and we can test by inserting a new user
to the table
320
00:32:58,500 --> 00:33:04,300
execute the test case testCreateUsers
321
00:33:04,900 --> 00:33:08,720
and new user is...
322
00:33:09,800 --> 00:33:12,460
for example, email...
323
00:33:14,200 --> 00:33:15,100
john
324
00:33:20,900 --> 00:33:21,860
John Smith
325
00:33:21,860 --> 00:33:22,500
okay
326
00:33:23,000 --> 00:33:26,220
password is johnny
327
00:33:27,200 --> 00:33:30,140
and run this test case
328
00:33:31,700 --> 00:33:35,090
Run As > JUnit Test
329
00:33:39,900 --> 00:33:40,860
successful
330
00:33:40,860 --> 00:33:41,860
okay
331
00:33:42,100 --> 00:33:46,200
Now refresh the list users page
332
00:33:46,600 --> 00:33:47,660
you see
333
00:33:48,600 --> 00:33:51,320
john... JohnSmith... appears here
334
00:33:51,800 --> 00:33:58,080
but the result is sorted by full name of the users
335
00:33:58,600 --> 00:33:59,500
you see
336
00:34:05,900 --> 00:34:08,480
and now, let's try to update something
337
00:34:11,600 --> 00:34:15,000
for example we update the...
338
00:34:18,100 --> 00:34:19,300
email
339
00:34:19,800 --> 00:34:21,000
update the...
340
00:34:21,199 --> 00:34:25,620
update users set email =...
341
00:34:26,600 --> 00:34:32,000
email of John, email of you is...
342
00:34:38,400 --> 00:34:42,980
you2018@gmail.com
343
00:34:44,500 --> 00:34:46,000
where...
344
00:34:47,699 --> 00:34:53,940
user_id = 3
345
00:34:55,000 --> 00:34:55,780
updated
346
00:34:55,780 --> 00:34:57,700
Now let's refresh the page
347
00:34:58,100 --> 00:35:08,000
and we should see that the email you@gmail.com should be updated
348
00:35:09,000 --> 00:35:12,300
you see it is updated to you2018...
349
00:35:12,500 --> 00:35:13,800
very good
350
00:35:16,300 --> 00:35:17,371
that's it!
351
00:35:17,600 --> 00:35:22,700
so far we have implemented the list users feature
352
00:35:22,900 --> 00:35:28,780
in the users management module in our Bookstore website
353
00:35:31,900 --> 00:35:39,400
we have written code that follows this sequence
354
00:35:39,700 --> 00:35:44,000
ListUsersServlet calls listUser on the UserServices
355
00:35:45,100 --> 00:35:49,820
and the UserServices call listAll() on the UserDAO
356
00:35:50,200 --> 00:35:51,930
and so on...
357
00:35:52,800 --> 00:35:53,920
you see here
358
00:35:54,100 --> 00:35:55,860
let's review
359
00:35:56,000 --> 00:35:59,010
ListUsersServlet
360
00:36:00,400 --> 00:36:02,220
from the...
361
00:36:03,600 --> 00:36:07,720
No, I review from the...
362
00:36:08,800 --> 00:36:12,400
header - the header - the user clicks on the Users link
363
00:36:12,600 --> 00:36:13,340
you see
364
00:36:13,500 --> 00:36:17,920
and this calls the servlet
365
00:36:18,500 --> 00:36:21,580
the servlet's doGet() method
366
00:36:23,500 --> 00:36:27,100
calls the listUser() method from the UsersServices
367
00:36:28,100 --> 00:36:33,400
and the UserServices calls the listAll() method on the UserDAO class
368
00:36:33,900 --> 00:36:44,000
and the listAll() method calls findWithNamedQuery() of the JpaDAO class
369
00:36:47,800 --> 00:36:48,660
you see
370
00:36:49,200 --> 00:36:51,280
that's how it works
371
00:36:52,800 --> 00:36:59,420
and the result is we have a list users page
372
00:37:00,700 --> 00:37:01,860
completed
373
00:37:04,000 --> 00:37:12,900
And in the next video, we will implement code for the create new user feature
24130 
            Can't find what you're looking for? |