Installing, Using, and Modifying SQuirreL SQL Client
Back in my undergraduate "Introduction to Databases" class, we were asked to create a database client in java. So we did: it could connect to an Oracle database, build and run simple queries, and (at my partner's request) had a black background and green text. We got an A, but it was primitive and ugly and even we wouldn't want to use it. Today I decided to see what other people have come up with.
I visited sourceforge and searched for Database projects written in Java. The first one I found, SQuirreL SQL Client, had good reviews and had been updated within the last few days. The project's homepage at http://www.squirrelsql.org/ says that it can be used to connect to any database with a JDBC driver. Being able to manage data from multiple various DBMSs at once seems pretty useful, so I proceeded to install it.
The available download was a .jar file which, when launched, started to install the client. A few steps in, it asked where to install and I ran into this problem:
It wouldn't install to the default path. I tried creating the folder before installation, but got the same problem. I tried using a path with no spaces, but the error message kept popping up. Finally I tried installing in My Documents and it worked. Installers on Windows 7 need to procure Administrative rights before running, which this installer did not do, causing me to install the program to an unconventional and less protected path.
The installer offers plugins for many different DMBSs to include specialized functionalities.
After registering the driver, I had to add an Alias to connect to my database instance.
The program didn't take too long to figure out for a user who was comfortable doing some exploring, but could use better documentation. The step-by-step guides I found on the project website were out of date, written from previous version of the software with very different GUIs.
Next I decided to take a look at the code. I found a link to the project's SVN site and checked out the code. The check out took over two hours to complete because it included branches with all past versions of the project. Once I waded through the branches to find the newest one, the code seemed pretty well organized. Each class was carefully classified into a package hierarchy.
There is a little developer documentation at http://sourceforge.net/apps/trac/squirrel-sql/wiki, but it does not explain the code in any detail. For the most part it explains how to set up the development environment and how to release a new version. There is a page on the Plugin API, which is probably what most developers want to add to the project anyway and explains how there are so many plugins available. I did note that the project uses Maven to build rather than Ant, so it requires extra steps to install and configure that.
Overall, there are a few areas where SQuirreL could be improved, but I consider it a successful open source project based on the three prime directives.
Prime Directive #1: The system successfully accomplishes at least one useful task.
-This directive is definitely satisfied. Being able to manage even one database at a time is useful - being able to manage multiple databases from multiple DBMSs is great.
Prime Directive #2: A new user can successfully install and use the system.
-This directive could use a little work, but was acceptable. A problem with the installer and lack of current documentation hurt the project. However, the download from sourceforge didn't require building code, so that is a plus.
Prime Directive #3: A new developer can successfully understand and enhance the system.
-This directive is satisfied, but could be improved by pointing developers to the latest branch of the SVN project rather than having them check out every historical version of the program. As with any complex software, there are a lot of classes and a lot of code, but I think they are organized as well as could be expected.
Final Thoughts:
SQuirreL is definitely usable, and I would consider it if I ever needed to manage data from more than one DBMS at a time. It may not be able to do everything that a specialized client could, but only having one program to work in for day-to-day tasks would be worth it. Its flexibility is impressive, no doubt thanks to the open source community. And finally, as expected, it is an incredible improvement over my undergraduate project.
I visited sourceforge and searched for Database projects written in Java. The first one I found, SQuirreL SQL Client, had good reviews and had been updated within the last few days. The project's homepage at http://www.squirrelsql.org/ says that it can be used to connect to any database with a JDBC driver. Being able to manage data from multiple various DBMSs at once seems pretty useful, so I proceeded to install it.
The available download was a .jar file which, when launched, started to install the client. A few steps in, it asked where to install and I ran into this problem:
It wouldn't install to the default path. I tried creating the folder before installation, but got the same problem. I tried using a path with no spaces, but the error message kept popping up. Finally I tried installing in My Documents and it worked. Installers on Windows 7 need to procure Administrative rights before running, which this installer did not do, causing me to install the program to an unconventional and less protected path.
The installer offers plugins for many different DMBSs to include specialized functionalities.
Once installed, SQuirreL presents dozens of driver options. If the desired driver isn't listed here, it can be added. Drivers are not downloaded automatically (even if you chose to install the associated plugin) but if they are already installed and listed in your CLASSPATH, they are registered automatically.
I decided to register the MSSQL Driver, so I double clicked on it in the list. It was not entirely clear what needed to be done on the next screen, but I eventually realized that if I go to the "Extra Class Path" tab I can browse to where my driver is located.
After registering the driver, I had to add an Alias to connect to my database instance.
Once it connected I could view, query, and update the data, as advertised.
The program didn't take too long to figure out for a user who was comfortable doing some exploring, but could use better documentation. The step-by-step guides I found on the project website were out of date, written from previous version of the software with very different GUIs.
Next I decided to take a look at the code. I found a link to the project's SVN site and checked out the code. The check out took over two hours to complete because it included branches with all past versions of the project. Once I waded through the branches to find the newest one, the code seemed pretty well organized. Each class was carefully classified into a package hierarchy.
There is a little developer documentation at http://sourceforge.net/apps/trac/squirrel-sql/wiki, but it does not explain the code in any detail. For the most part it explains how to set up the development environment and how to release a new version. There is a page on the Plugin API, which is probably what most developers want to add to the project anyway and explains how there are so many plugins available. I did note that the project uses Maven to build rather than Ant, so it requires extra steps to install and configure that.
Overall, there are a few areas where SQuirreL could be improved, but I consider it a successful open source project based on the three prime directives.
Prime Directive #1: The system successfully accomplishes at least one useful task.
-This directive is definitely satisfied. Being able to manage even one database at a time is useful - being able to manage multiple databases from multiple DBMSs is great.
Prime Directive #2: A new user can successfully install and use the system.
-This directive could use a little work, but was acceptable. A problem with the installer and lack of current documentation hurt the project. However, the download from sourceforge didn't require building code, so that is a plus.
Prime Directive #3: A new developer can successfully understand and enhance the system.
-This directive is satisfied, but could be improved by pointing developers to the latest branch of the SVN project rather than having them check out every historical version of the program. As with any complex software, there are a lot of classes and a lot of code, but I think they are organized as well as could be expected.
Final Thoughts:
SQuirreL is definitely usable, and I would consider it if I ever needed to manage data from more than one DBMS at a time. It may not be able to do everything that a specialized client could, but only having one program to work in for day-to-day tasks would be worth it. Its flexibility is impressive, no doubt thanks to the open source community. And finally, as expected, it is an incredible improvement over my undergraduate project.
Comments
Post a Comment