OCJP,OCJWD
Bear Bibeault wrote:Why re-invent the wheel? A number of such Java products already exist. Squirell SQL is just one of them.
OCJP,OCJWD
Wendy Gibbons wrote:what legacy issues? as most likely any API's we point you to will have exactly the same issues as squirrel. Squirrel being written in java.
OCJP,OCJWD
No more Blub for me, thank you, Vicar.
chris webster wrote:Download Oracle's free SQLDeveloper tool, which will do everything you want (and more), is well-documented with plenty of tutorials, and will cost your company nothing to maintain/develop. It also includes tools for data modelling and database design/creation etc.
Don't be a victim of Not Invented Here Syndrome!
OCJP,OCJWD
a Java GUI application for a database editor which connects to Oracle DB
something exactly like TOAD
the Java GUI application should be able to display the table structure in the left navigation menu and the user should be able to execute Select/Update/modify and Delete queries through this GUI
the application should be able to provide export functionality of the result set
customize this product to suffice our requirements
to provide authentication, and authorization to login into this product
No more Blub for me, thank you, Vicar.
chris webster wrote:Hi Jhansi,
SQLDeveloper is not open source, so if you require open source you need to look elsewhere. But you might also want to sit down with your project's customers and build a MoSCoW list of your requirements, as it sounds like it might be hard to satisfy all of them in the time available.
From your first post, you want:
a Java GUI application for a database editor which connects to Oracle DB
something exactly like TOAD
the Java GUI application should be able to display the table structure in the left navigation menu and the user should be able to execute Select/Update/modify and Delete queries through this GUI
the application should be able to provide export functionality of the result set
All these requirements can be met by one of the free downloads described above, which also allows you to meet your "very short deadline".
You also mentioned the possible need to:
customize this product to suffice our requirements
to provide authentication, and authorization to login into this product
This might be harder to realise properly in your short time scale.
So far you haven't explained what extra requirements would require you to customise the interface, and to be honest, if your timescale really is very short, you should think carefully about your priorities here.
Using a suitable pre-built tool will ensure you have a secure, robust, flexible, thoroughly tested, well documented and maintained database editor (all for free), but will limit your options for tweaking the interface. So which is more important, being able to control the damage users can do to your database, or being able to change the interface?
With regard to security, most of these tools e.g. SQLDeveloper use database authentication and authorisation i.e. you can control precisely what users can do by controlling the permissions you give their DB accounts. You should do this anyway, as you don't want somebody logging into the GUI and then being able to trash your entire database.
As a database developer, I'd say the security aspect is definitely a "Must" requirement, while the customisable interface is more of a "Should" or "Could", but that is a decision for your project's customers and will depend on how much they want to pay.
Finally, you talk about a "Java API", but what is this API for?
If you want to manipulate the data, then you already have an API: it's called SQL. If you want to do this from within Java, there are already plenty of APIS and tools - JDBC, ORMs like Hibernate, and so on. If you want to control how users manipulate domain classes (and the underlying data), then you probably need to do this the way you would do it in any other n-tier Java database application, or define a DSL (maybe using a JVM language like Groovy?).
Why do you need yet another API?
Given your short timescales, it sounds like you need to sit down with your users and go through a reality check as to what you need to implement, what you can get for free, which of these "requirements" are really just examples of YAGNI, and how much time/money you (and your employers) are prepared to invest in building/testing/deploying/documenting/maintaining this new tool if you build it all yourself.
Good luck.
OCJP,OCJWD
Jhansi Nallan wrote:Hi Chris,
Thank you for the detailed information. Here are some of those 'extra' requirements for which i thought i would need to customize the code to fulfill these. I might be wrong.
1. The user will have the ability to login based on their defined user roles, Since the DB tables has critical data,it is important that not
every user should have access to update queries.
2. if a new role has to be created, i cannot modify the functionality
3. Couldnt find where the creation of login credentuals are to be set in the tool, I have downloaded the SQLDeveloper and checked all the Help Menu.
4. Password should be expired in 90 days, a customised note for the password expiry dates is to be sent
5. There is a need to add a firm specific waiver information on some use cases.
There are few more, but the above listed are some of the must-have functionalities with respect to the requirements. Now, keeping the above in mind, though i could understand that the SQL Developer is enough capable to provide all the features of the Perfect DB Explorer, there is a need to customize this tool for atleast few of the points above.
Request your further guidance and suggestions on the above. Thank you so much so far for all the useful important information.
chris webster wrote:Hi Jhansi,
SQLDeveloper is not open source, so if you require open source you need to look elsewhere. But you might also want to sit down with your project's customers and build a MoSCoW list of your requirements, as it sounds like it might be hard to satisfy all of them in the time available.
From your first post, you want:
a Java GUI application for a database editor which connects to Oracle DB
something exactly like TOAD
the Java GUI application should be able to display the table structure in the left navigation menu and the user should be able to execute Select/Update/modify and Delete queries through this GUI
the application should be able to provide export functionality of the result set
All these requirements can be met by one of the free downloads described above, which also allows you to meet your "very short deadline".
You also mentioned the possible need to:
customize this product to suffice our requirements
to provide authentication, and authorization to login into this product
This might be harder to realise properly in your short time scale.
So far you haven't explained what extra requirements would require you to customise the interface, and to be honest, if your timescale really is very short, you should think carefully about your priorities here.
Using a suitable pre-built tool will ensure you have a secure, robust, flexible, thoroughly tested, well documented and maintained database editor (all for free), but will limit your options for tweaking the interface. So which is more important, being able to control the damage users can do to your database, or being able to change the interface?
With regard to security, most of these tools e.g. SQLDeveloper use database authentication and authorisation i.e. you can control precisely what users can do by controlling the permissions you give their DB accounts. You should do this anyway, as you don't want somebody logging into the GUI and then being able to trash your entire database.
As a database developer, I'd say the security aspect is definitely a "Must" requirement, while the customisable interface is more of a "Should" or "Could", but that is a decision for your project's customers and will depend on how much they want to pay.
Finally, you talk about a "Java API", but what is this API for?
If you want to manipulate the data, then you already have an API: it's called SQL. If you want to do this from within Java, there are already plenty of APIS and tools - JDBC, ORMs like Hibernate, and so on. If you want to control how users manipulate domain classes (and the underlying data), then you probably need to do this the way you would do it in any other n-tier Java database application, or define a DSL (maybe using a JVM language like Groovy?).
Why do you need yet another API?
Given your short timescales, it sounds like you need to sit down with your users and go through a reality check as to what you need to implement, what you can get for free, which of these "requirements" are really just examples of YAGNI, and how much time/money you (and your employers) are prepared to invest in building/testing/deploying/documenting/maintaining this new tool if you build it all yourself.
Good luck.
No more Blub for me, thank you, Vicar.
chris webster wrote:Wendy's right. Oracle has a very flexible, robust and sophisticated system for managing user permissions etc. Why not use it, instead of re-inventing a square wheel?
1. The user will have the ability to login based on their defined user roles, Since the DB tables has critical data,it is important that not every user should have access to update queries.
2. if a new role has to be created, i cannot modify the functionality
Your DBA can implement this via database authentication/authorisation/roles etc, so the same rules apply regardless of how a user manages to connect to the database.
3. Couldnt find where the creation of login credentuals are to be set in the tool, I have downloaded the SQLDeveloper and checked all the Help Menu.
You do this by logging into SQL Developer as a DBA user, then setting up the appropriate user account details. Another job for your DBA.
4. Password should be expired in 90 days, a customised note for the password expiry dates is to be sent.
Your DBA can implement this in the database, so the same rules apply regardless of how a user manages to connect to the database.
OCJP,OCJWD