Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I need help with this java assignment. I have no idea how to do it Note: 1 java file was provided along with the instructions

I need help with this java assignment. I have no idea how to do it

Note: 1 java file was provided along with the instructions for this lab ( it is below)

LAB JDBC

LabJDBC gives students the opportunity to gain practice and experience writing Java applications that connect to a relational database using JDBC. After completing this exercise students should become familiar with:

using Java DB

using SQL to query a relational database

connecting to and querying a relational database using JDBC

using the java.util.Properties class to read configuration information from a properties file

For all programming exercises in this assignment you will need Java DB installed on your development system for use as your database management system. If you have installed JDK 8, you automatically have Java DB as part of the installation. For Java 9 or later, you must install the Apache Derby database. Instructions for installing Apache Derby are elsewhere in this Lesson.

For each JDBC program in this assignment, create a file called database.properties that holds the configuration information for the jdbc driver and the database url. Your programs should read these properties from the file and use this information when connecting to the database. Your solution must use the java.util.Properties class to load and read the properties. Place the properties file directly under your Java Project folder in your IDE. Here is an example of the properties you might find in the database.properties file:

jdbc.url=jdbc:derby:MOVIEDB;create=true jdbc.driver=org.apache.derby.jdbc.EmbeddedDriver

GETTING STARTED

Create a Java project in your Eclipse or IntelliJ workspace called LabJDBC. Place all your java source files for this exercise under the LabJDBC project src.

WHAT TO SUBMIT

When you have completed all of the programs in this assignment you will create a single zip file that includes your source code for each program. You will submit a single zip file for this assignment that includes only your Java source files with no sub folders.

EXERCISE 1: MOVIE DATABASE

Using the techniques, Derby ij utility and a sql file as described in this lesson, create and populate a movie database. Then create a movie database application based on JDBC that allows a user to look up information about a movie and provide a review for a movie. Your application should provide the following features:

List all movies that are rated a particular rating (PG, PG-13, R, etc) entered by the user.

All a user to post a review for a particular movie. A review consists of review text and a star rating with

5 stars = Excellent

4 stars = Good

3 stars = Neutral

2 stars = Poor

1 star = Very Poor

List all reviews for a movie and include the average star rating for the movie

Your solution should read the database connection information (jdbc driver and connection url) from a properties file called database.properties. You can create a console based application to implement this application or write a GUI interface to provide these movie database features described above. The only requirement is that the class containing the main method should be called MovieDBApp.

Here is some information about the database table schema you will be using:

image text in transcribed

A set of commands to create and populate the MOVIE and MOVIE_REVIEW tables are provided below. Place them in a file moviedb.sql and use Derbys ij utility to create and populate your database.

CONNECT 'jdbc:derby:MOVIEDB;create=true';

CREATE TABLE MOVIE (MOVIE_ID int not null primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), MOVIE_NAME varchar(100), RATED

varchar(10));

CREATE TABLE MOVIE_REVIEW (REVIEW_ID int not null primary key GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1), MOVIE_ID int, REVIEW varchar(500), STARS int);

INSERT

INTO

MOVIE(MOVIE_NAME,

RATED)

values('Divergent', 'PG-13');

INSERT

INTO

MOVIE(MOVIE_NAME,

RATED)

values('Muppets Most Wanted', 'PG');

INSERT

INTO

MOVIE(MOVIE_NAME,

RATED)

values('The LEGO Movie', 'PG');

INSERT

INTO

MOVIE(MOVIE_NAME,

RATED)

values('Saving Mr. Banks', 'PG-13');

INSERT

INTO

MOVIE(MOVIE_NAME,

RATED)

values('Her', 'R');

Notice that in the CONNECT statement has a portion of the connection URL highlighted. This statement assumes that you will want to have the database files located in your program's current directory in MOVIEDB. If you would like the database files to be located somewhere else on your system, you will need to update this statement. Remember that database.properties and moviedb.sql must agree on the database name and location. (Not providing a location puts the database in the current directory, which is the root of your project, which is probably where you want it.) Also, when the MOVIE and MOVIE_REVIEW tables are created the MOVIE_ID and REVIEW_ID are set to be automatically generated by the database. As a result, any SQL statements to INSERT INTO the MOVIE or MOVIE_REVIEW table will not need to specify and ID. Instead, the database will automatically generate these values for you.

Java file provided

import java.util.Scanner; public class MovieDBApp { private static final int SELECTION_FIND_MOVIE = 1; private static final int SELECTION_WRITE_REVIEW = 2; private static final int SELECTION_VIEW_REVIEWS = 3; private static final int SELECTION_EXIT = 4; public static void main(String[] args) { Scanner in = new Scanner(System.in); int selection = getMenuSelection(in); while(selection != SELECTION_EXIT) { if(selection == SELECTION_FIND_MOVIE) { System.out.print("ENTER RATING>> "); String rating = in.nextLine(); } else if(selection == SELECTION_WRITE_REVIEW) { System.out.print("ENTER MOVIE NAME>> "); String movieName = in.nextLine(); System.out.print("ENTER NUMBER OF STARS (1 - 5)>> "); int stars = in.nextInt(); in.nextLine(); System.out.print("ENTER MOVIE REVIEW TEXT>> "); String reviewText = in.nextLine(); } else if(selection == SELECTION_VIEW_REVIEWS) { System.out.print("ENTER MOVIE NAME>> "); String movieName = in.nextLine(); } else { System.out.println("INVALID MENU OPTION"); } selection = getMenuSelection(in); } in.close(); } public static int getMenuSelection(Scanner in) { int selection = 0; System.out.println(" --- MAIN MENU ---"); System.out.println("(1) Find Movie"); System.out.println("(2) Write Review"); System.out.println("(3) View Movie Reviews"); System.out.println("(4) Exit"); System.out.print(" ENTER MENU SELECTION>> "); if(in.hasNextInt()) { selection = in.nextInt(); in.nextLine(); } else { in.nextLine(); } System.out.println(); return selection; } }
MOVIE MOVIE REVIEW MOVIE ID MOVIE NAME VARCHAR (100) MOVIE RATING VARCHAR (10) ID INT INT VARCHAR (500) INT INT MOVIE ID REVIEN STARS

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Design And Implementation

Authors: Edward Sciore

2nd Edition

3030338355, 978-3030338350

More Books

Students also viewed these Databases questions

Question

Tell the merits and demerits of Mendeleev's periodic table.

Answered: 1 week ago