Data Persistence in Jaxer [con't]
Define Your Own Database Connection
More likely than not, you'll want to manage your own database connection(s) for each application. We'll do that here and set up our blog app to run against a MySQL database. You can download it from the MySQL site if you need to.
I find it beneficial to group all global application-level variables to a separate
is to click on the down arrow beside the
New button while the editor pane is
active and select the "
(Figure 1). This action
will open a new file in the editor. You'll have to name it and choose a directory
when you save it. Alternatively, you can right-click anywhere in the
pane and select
Figure 2) to bring up the "
for the file name and click "
Finish" to create the file in the root
Figure 3). In a larger
project, you might want to create a "
scripts" directory to store them.
The following code would place a global variable for the
posts directory and
connection parameters in an object named
blog.htmlpage. To do that, place the cursor where you want to insert the new script tag (E.G.: below the existing two external scripts) and click the "
Insert an External JS Tag" button ( Figure 4). Then enter "
global_vars.js" for the script name and "
server" for the
runatattribute ( Figure 5). After the new tag appears in the editor, enter the "autoload="true"" so that the script is guaranteed to be loaded before the
serverloadevent. Here is the resulting code:
This code in the
serverload event, creates the
blog database, defines the
table, and selects all the posts contained in it. Don't be afraid of the
function. It's smart enough to not clobber the
blog database once it's been
resultset.toHTML() function formats the rows as an HTML table.
Since it also returns column headers, I set its name to a non-breaking space
), as we don't want it displayed:
We only need to change one line in the
formatPosts() function, which is to
remove the call to
makeHTML(), as the results were already formatted above:
save() function only requires a connection object and insert statement
to add the post to the database:
And just like that, you are now using a database to manage your blog posts! Here's the files that we worked on today:
And here's more information on working with databases using Jaxer:
Rob Gravelle combined his love of programming and music to become a software guru and accomplished guitar player. He created systems that are used by Canada Border Services, CSIS and other Intelligence-related organizations. As a software consultant, Rob has developed Web applications for many businesses and recently created a MooTools version of PHPFreechat for ViziMetrics. Musically, Rob recently embarked on a solo music career, after playing with Ivory Knight since 2000. That band was rated as one Canada's top bands by Brave Words magazine (issue #92) and released two CDs. Rob's latest, entitled KNIGHTFALL, was a collaboration between himself, the former Ivory Knight vocalist, and legendary guitarist/producer, Jeff Waters of Annihilator fame. Rob is available for short-term software projects and recording session work. to inquire, but note that, due to the volume of emails received, he cannot respond to every email. Potential jobs and praise receive highest priority!
Original: September 4, 2009