May/100
Selecting MySQL rows within a Time Range for a Java Program
Earlier I discussed selecting rows from a table within a specified date range. What if you need to select rows from within a time range?
Again a SELECT statement with a WHERE clause is needed. The method below will give the statement for the start and end times of the statement. Unlike the earlier example this has a DateFormat to supply the String required to generate the SQL statement.
GregorianCalendar calStart = new GregorianCalendar() ;
calStart.set( Calendar.HOUR_OF_DAY, 18 ) ;
calStart.set( Calendar.MINUTE, 1 ) ;
String sql = "SELECT * FROM " + dbh.userTable.tableName +
" WHERE status=1 AND "
+ SQLStrings.getWhereBetweenDates( "signup_time", calStart ) ;
.....
public static String getWhereBetweenDates( String columnName, GregorianCalendar calStart)
{
GregorianCalendar now = new GregorianCalendar() ;
StringBuffer sb = new StringBuffer( columnName + " BETWEEN " ) ;
SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss" ) ;
String beforeDateString = df.format( calStart.getTime() ) ;
String afterDateString = df.format( now.getTime() ) ;
sb.append( beforeDateString + " AND " + afterDateString ) ;
return sb.toString() ;
}
Note that the DateFormat String here was determined by what was present in the MySQL database for that particular column. YMMV – so if there are problems maybe check your database table to see what particular format that column takes.
Apr/100
Netbeans Editor Code Folds
Some times its handy to be able to hide sections of code in the Netbeans editor window.
// <editor-fold desc="This section of the code deals with the item."> Your code goes here... // </editor-fold>
These are just the basics. More information is available from the Netbeans page.
Mar/100
jQuery / Java / Autocomplete
If you haven’t heard of jQuery, its a Javascript library that allows you to implement AJAX functionality in your web pages. You can find out more about it from the jQuery website.
My first attempt with jQuery involved using an autocomplete plugin provided by Pengoworks. Autocomplete is where you start typing in a few letters and the text box will come up with some suggestions. There was a tutorial for this present on the jquery autocomplete page, but it didn’t quite meet my needs, and maybe it doesn’t meet yours.
There are two ways in which to use the auto complete functionality. If there are a few options (ie upto 50) the list of suggestions can be embedded in the web page itself, but if there are many options (1000s) the suggestions need to come back from a server. It was this second process that the tutorial did not cover, and hence the reason for providing a step by step guide to doing it here.
In partcular, I’m working from Java in Netbeans 6.8.
Aug/090
VisualWeb JSF being discontinued
One of the primary reasons for starting this blog was to log any nifty tricks I learnt whilst using Netbeans and VisualWeb JSF. However this has now been converted to a non-essential Sun item. I was also planning to document IceFACES, an AJAX support framework, which no longer supports a Visual developer setup with Netbeans 6.7 due to the removal of the ‘Woodstock’ components for the core IDE. Being new with IceFACES from within a text editor looses the productivity gains it should provide.
As I have some projects looming up and have to think about maintenance down the line, I have decided to make the switch to Eclipse – specifically I am using the MyEclipse platform. Its not free as in beer, but comes with lots of neat addons tied in with it, so I am putting this through its paces.
Jul/091
sun.misc.BASE64Encoder replacement required
The package sun.misc.BASE64Encoder that was used in some code I was referencing came up with a warning: sun.misc.BASE64Encoder is Sun proprietary API and may be removed in a future release
Not good for futureproofing!
Its replacement can be found using the relevant class from Apache Commons library. This is in the Codec suite of the Apache Commons library.
Jul/091
VisualWeb JSF: linking form elements to a database (Part I:Displaying)
One of the advantages of using the VisualWeb JSF framework in Netbeans is that it makes the process of storing user data submitted in a web page form easy to store into a database.
The Prep Work
The first thing to do is to ensure your database has been setup with the tables required, and a user that can add data to a table has also been created. This is something I will add in a future post at some point.
As a start point you should have the VisualWeb JSF plugin installed to your copy of Netbeans 6 and created a web application that uses the VisualWeb JSF framework.
Two pages need to created for this application. By default there is a ‘Page1.jsp’ and supporting files created with the application. Add a second page by right clicking on ‘Web Pages’ and choose ‘New -> Visual Web JSF Page’. Label this ‘Page2.jsp’.
Create the form on Page 1 by opening up Page1.jsp. Ensure you are in the Design View for the page. The Woodstock pallette contains the item to use. A full rundown of all the components is available here – we are going to use the input text field and a submit button.
Part I
The first fun thing to do would be to populate an element from your database.
- In the Services Tab, ensure the database you have chosen is connected.
- Drag a listbox over from the Woodstock Basic Panel across to the page. By default it will be filled with ‘Item 1, Item 2 and Item3′, which we want to change to something from a database.
- Give it a label in the Appearance section of the Properties window.
- In the Services tab, go to the table whose data you want to be included in the list box.
- Drag this table into the page.
- Right click on the ListBox Item and right click on it. Choose ‘Bind To Data’ from the menu that appears.
- In the ‘Bind To Data Provider’.
- Choose the table and column you wish to display in the table.
- Now when you deploy and run the application in your browser the information should appear in the table