Hello!
My goal is to learn and implement a lightweight web app, maybe on
online store, maybe content management. What should I use for the
"backend" of the web app? I'm not familiar with all the technologies
as my expertise has been the "frontend" using Struts (mostly an old
XSL'ized version of Struts) with Tomcat. I'm comfortable with Java,
XML/XSL, NetBeans for the IDE and so on. But, I've never implemented
the database end of the web app and want to learn something new. I've
never used J2EE or any of those many Jxxx acronyms! Any
recommedations? There is so much out there that I'm not sure where to
begin. I see alot of postings for MySQL and Hibernate, is that the way
to go?
My desire is to create a web app that is lightweight, easy to implement
and can be hosted on a public host somewhere. Is this possible?
Thank you for any pearls of wisdom!
Wendy
Bruce Lewis - 02 Dec 2005 20:22 GMT
> I've never used J2EE or any of those many Jxxx acronyms! Any
> recommedations? There is so much out there that I'm not sure where to
> begin. I see alot of postings for MySQL and Hibernate, is that the
> way to go?
By the time you learn the last Jxxx acronym in your list the first will
be obsolete. What you want to learn is databases -- entity
relationships, constraints, triggers, advanced queries. Such knowledge
will still be useful 10 years from now. Steer clear of MySQL. It's
getting better in recent releases but is still surrounded by a culture
of database misconceptions. Start with PostgreSQL and a good SQL book.
Celko's books have a good reputation.
Learn PostgreSQL and use plain old prepared statements. Learn to look
at a database as more than object persistence and you'll be ahead of
programmers with a lot more acronyms on their resume.
Jon Martin Solaas - 03 Dec 2005 12:13 GMT
> Hello!
>
[quoted text clipped - 15 lines]
> Thank you for any pearls of wisdom!
> Wendy
If you plan to make your application very db-specific, MySQL should be a
sure bet. It's got all kinds of awkward "features" that may or may not
make your sql portable... :-/
Seriously, if you want to have your app hosted somewhere, MySQL is most
widely used at hosting companies.
If you want to learn stuff, it's often smart to focus on one thing at a
time, and not add extra complexity. So I'd advice you to skip Hibernate
for now, and to use either PostgreSQL or the most bleeding edge MySQL
you can get your hands at, so that you can learn something that is
somewhat standards compliant. MySQL has *really* been playing catch-up
the latest years.
On the other hand, frameworks like Hibernate will (at least partly) hide
database system pequliarities for you...

Signature
jon martin solaas
David Harper - 04 Dec 2005 20:28 GMT
> Hello!
>
> My goal is to learn and implement a lightweight web app, maybe on
> online store, maybe content management. What should I use for the
> "backend" of the web app?
...
> There is so much out there that I'm not sure where to
> begin. I see alot of postings for MySQL and Hibernate, is that the way
> to go?
>
> My desire is to create a web app that is lightweight, easy to implement
> and can be hosted on a public host somewhere. Is this possible?
You may find it worth your while to look at Eclipse as an IDE, as an
alternative to NetBeans.
Also, MySQL is a perfectly good database system, despite the disparaging
comments made elsewhere. It provides transactional tables for those
mission-critical applications that require them, and that includes
foreign key constraints and the whole range of transaction isolation levels.
MySQL is a heck of a lot easier to set up and start working with than
PostgreSQL (which is, notwithstanding, also an excellent database
system) and Oracle.
Look at Paul DuBois's book on MySQL as a starting point for that part of
your system, and the O'Reilly books on servlet programming and JDBC for
the other aspects.
David Harper (a JDBC/MySQL developer)
Cambridge, England
Jon Martin Solaas - 28 Dec 2005 11:04 GMT
> Also, MySQL is a perfectly good database system, despite the disparaging
> comments made elsewhere. It provides transactional tables for those
> mission-critical applications that require them, and that includes
> foreign key constraints and the whole range of transaction isolation
> levels.
If you absolutely must use MySQL make sure it is -- as mentioned
elsewere -- the latest possible version so that you get a database where
at least an effort towards standards compliance has been made, otherwise
you'll just get your hands on a version that, well, simply behaves a
little different from other databases. Also make sure to run in strict
mode so that the insane value coercion strategy implemented in MySQL is
turned off.
> MySQL is a heck of a lot easier to set up and start working with than
> PostgreSQL (which is, notwithstanding, also an excellent database
> system) and Oracle.
MySQL and PostgreSQL are equally easy to set up, Oracle is a "bit" more
complicated if you want to tune and utilize all bells and whistles.
wendy - 06 Dec 2005 04:05 GMT
Thank you to Bruce, Jon & David. Each of you had very good
points....It seems that learning about databases in general is a good
idea before delving into one specfic database application. I'm going
to look into all the books mentioned and see where I want to go.
Thanks again! Wendy