Today is Thursday, 2nd December 2021

Archive for October, 2015

JDBC BLOB: Handling large file sizes

JDBC has support for storing binary files in the database using the BLOB datatype. I covered this in a previous blog post: Reading and Writing BLOBs with MySQL.

However, you may run into errors if you need to store large files. In particular, you may encounter the following error messages:

Packets larger than max_allowed_packet are not allowed.
Data too long for column 'xxx' at row 1.

By default, the BLOB datatype can only handle files up to 64KB.

MySQL has multiple datatypes for handling binary data:

 TINYBLOB   :     maximum length of 255 bytes
 BLOB       :     maximum length of 65,535 bytes
 MEDIUMBLOB :     maximum length of 16,777,215 bytes
 LONGBLOB   :     maximum length of 4,294,967,295 bytes 

Storing Larger Files

If you need to store larger files, then follow these steps:

1. Change the databtype of your BLOB column to LONGBLOB

ALTER TABLE `demo`.`employees`
CHANGE COLUMN `resume` `resume` LONGBLOB NULL DEFAULT NULL ;

2. Edit the MySQL configuration file

On MS Windows: C:\Program Files\MySQL\MySQL Server x.x\my.ini
On Mac: /usr/local/mysql/my.cnf

In this file, add the line:

max_allowed_packet=256M

See the image below

MySQL Config file

MySQL Config file

 

3. Save the file and restart your MySQL server

4. Test your application again. You will now be able to store large files.

 

Enjoy 🙂



JSF: Setting itemLabel with selectItems

JSF provides UI components for drop-down lists. Drop-down lists are called selectOneMenu in JSF.

When you use the components, you may have the requirement to use different values for the itemLabel and itemValue. You can accomplish this by making use of a Map collection (java.util.Map). The Map collection is a collection of key-value pairs.

In JSF, you provide a reference to a Map and then JSF will build the list. It will use the Map key for the itemLabel and the Map value for the itemValue.

When the user selects an item, then the selected item’s value will be set on the bean.

Ok, enough talking, let’s look at an example.

In this example, I will present the user with a JSF form. The form will read the user’s first name, last name and country.

form-1

JSF Bean Code

The country drop down list is populated with a Map from the bean. The bean will define a Map collection that uses the Map key for the itemLabel and the Map value for the itemValue. Here’s the code snippet

JSF Page

Now the JSF page can make use of this bean to get the itemLabel and itemValues. Remember JSF will use the map key as the itemLabel and the map value as the itemValue

Here’s the snippet of code for the JSF page.

So when the form is displayed, the user will set the map keys in for the item label. For example, the user will see the full name of the country as shown below:

form-2

Then once they submit the form, JSF will store the value of the selected item into the bean.

Here’s a snippet of code from the response form that shows the user’s selected value:

So if the user selects “Germany”, then JSF will store the value of “DEU” for the bean property studentTwo.country.

final

Summary

Well, that covers how you can provide different itemLabels and itemValues for a drop-down list.

DOWNLOAD SOURCE CODE

 

Follow luv2code with the links below:

– Website: http://www.luv2code.com
– YouTube: http://goo.gl/EV6Kwv
– Twitter: http://goo.gl/ALMzLG
– Facebook: http://goo.gl/8pDRdA



How Do I Become a Great Software Developer?

I get this question all the time: “How Do I Become a Great Software Developer?”

It is a very good question from new developers. I’ve answered this a number of times with different variations.

But I found that this article does the best job of covering all of the key points. Enjoy!

[Article] – Step By Step Path to Becoming a Great Software Developer

 

 



Top