The SQL schema is the persistent embodiment of your Java classes. Although there might not be a one-to-one relationship between Java classes and SQL tables, any data that you want to have persist between sessions must live in a SQL database.
MySQL is a good database for small to moderately sized applications, with a reasonable feature set and zero cost. However, if you will deal with large amounts of data, you might want to consider a commercial database such as Oracle.
Because MySQL doesn't use sequences, you need to use the capability of MySQL to read back the value of the last inserted autoincrement column.
Now that you have all the scutwork out of the way and you have some data to play with, you're ready to start developing your application. ...