This week I have been doing a little homework or revision, or both, can’t decide.
First up, a little revision of SQL. Ever tried to learn something that doesn’t stick? For me it’s infrequently used external framework/application commands i.e. Git commands – I use EGit rather than command line Git, and then there’s SQL – often its a hidden persistence layer that I never see. For example, this website and all it’s content is stored in a MySQL database, but I have never had the type a command to create, read, update, or delete (C.R.U.D) anything from the database. Similarly my private wiki’s also share the databases on my personal computer to store it’s content.
The last time I used SQL in a real … well, simulated capacity was back in my university days when I was learning rudimentary SQL commands and how to access a database. It’s no surprise then that much of what I have learned about SQL is soon forgotten.
But here I am cramming SQL revision in the form of a Sam’s Teach Yourself SQL in 10 Minutes (by the way that’s 10 minutes per chapter, and there are 22 chapters). I also have with me – Database Design for Mere Mortals which promises to teach me all I need to know about creating scalable, robust, well-designed, databases. Unfortunately, it’s larger than a phone book from an era when phone books actually had telephone numbers in them. So I have yet to find time to absorb it.
I have also been investigating Hibernate, which is said to abstract away the low level SQL query handling and allows me to store my plain old java objects in a relational database via database mapping. Which raises the question, should I learn JDBC or Hibernate? Obviously the answer is to learn both, but with job interviews being lined up, the question is which do I learn first? Many jobs look for people who know how to use Hibernate, but I think it would be worthwhile to learn JDBC.
Similarly, which should I use for my MoneyJar application to help me store my transaction data? Should I start by trying JDBC? and then later replace it with hibernate? Or should I just start with hibernate and learn JDBC as an experiment after the fact?