ColdFusion-ORM: Using CRUD Functions
Previous Related Posts:
Getting Started with ORM
First of all, pardon me for posting this example – I could have easily clubbed these concepts with my first post: Getting Started with ORM. I promise that in my further posts, I will club more concepts into a single example (but still try to keep it simple).
Task:
Example that demonstrates the CRUD Functions in ColdFusion-ORM
Stuff that you would learn:
- To work with the CRUD Functions – EntityNew, EntityLoad, EntitySave, EntityDelete
- ormflush() function to force-commit ORM calls
- OrmExecuteQuery function to execute HQL
- Saving the mapping file
Steps to Run the example:
- This example needs the cfartgallery datasource. This is shipped with ColdFusion by default.
- Create a directory say “crudorm” under webroot.
- Create the following files – Application.cfc, CArtists.cfc and index.cfm.
- Run the URL http://localhost:8500/crudorm/index.cfm
I have interspersed the example with a lot of comments. You can understand the concept by just following the comments starting with Application.cfc and then CArtists.cfc and then index.cfm.
Application.cfc
component
{
//Name of the application
this.name = "ORM_CRUDExample";
//ormenabled should be set to true so that ORM is enabled for this application
this.ormenabled = "true";
//Set the datasource that needs to be used by the ORM Functions. You can also set this in the ormsettings struct
this.datasource = "cfartgallery";
/*
ColdFusion-ORM uses hibernate as its under-lying engine. ColdFusion-ORM generates
the hbm.xml file which contains the hibernate mapping. To save the hibernate mapping
that is generated, you need to set savemapping flag to true. In this case, CArtists.hbm.xml
file will be generated in the same folder as that of the application.
*/
this.ormsettings.savemapping="true";
}
CArtists.cfc
(I have not added any comments to this file. If you need to learn about the different attributes used here, refer the example Getting Started with ORM)
component persistent="true" entityname="Artists" table="Artists"
{
property name="id" column="ARTISTID" generator="increment";
property name="firstname";
property name="lastname";
property name="address";
property name="city";
property name="state";
property name="postalcode";
property name="email";
property name="phone";
property name="fax";
property name="thepassword";
}
index.cfm
<!---
This example will teach you
- how to do CRUD operations on this table using the Entity* functions.
- ormflush function.
- how to use ORMExecuteQuery function.
- Saving the mapping file
cfartgallery datasource is used for this application.
Artists table is one of the table in cfartgallery which contains a list of
artists records. This table is used in this example.
--->
<cfscript>
ormreload();
/*
Load the Artist records to display them. There are a number of
variations to the EntityLoad method which will help you to retrieve
the records the way you want. Refer the documentation for EntityLoad for details.
*/
WriteOutput("<b>Initial state of the table<br /></b>");
DisplayArtists(EntityLoad("Artists"));
/*
Create a new Artist object and set the properties. This will
be inserted to the table in the next step.
EntityNew function takes entityname as input and creates a
fresh object of the entity.
*/
newArtistObj = EntityNew("Artists");
newArtistObj.setfirstname("John");
newArtistObj.setlastname("Smith");
newArtistObj.setaddress("5 Newport lane");
newArtistObj.setcity("San Francisco");
newArtistObj.setstate("CA");
newArtistObj.setPostalCode("90012");
newArtistObj.setphone("612-832-2343");
newArtistObj.setfax("612-832-2344");
newArtistObj.setemail("jsmith@company.com");
newArtistObj.setThePassword("jsmith");
/*
Insert the new artist object that you just created.
EntitySave will insert the newArtistObj into the database.
EntitySave is used for both update and insert. ColdFusion
will smartly figure out whether it is an update or insert. As we are
sure that this is an insert operation, we set the secondparameter to "true".
ColdFusion now will always do the insert operation.
*/
EntitySave(newArtistObj, true);
/*
Call ormflush so that the Insert SQL runs immediately. If ormflush
is not called, all the CRUD operations in this page will be flushed at
the end of the request.
*/
ormflush();
/*
Display the artist records now to check if the new record got added.
This time I have used a different function to retrieve the Artist records.
This is just to introduce you to the ORMExecuteQuery set of functions.
ORMExecuteQuery takes HQL as input and returns one-entity/array-of-entities/
string/array-of-strings depending on the HQL. HQL is the query language used
in hibernate to retrieve objects based on complex joins. This function has
a number of overloads. Please refer the documentation for more details.
*/
WriteOutput("<b>After adding the new record (Notice the Record with FirstName John being added)<br /></b>");
DisplayArtists(ORMExecuteQuery("from Artists"));
/*
Update the new Artist record. Change the Phone number.
You dont need to call EntitySave method here as the newArtistObj is
an entity maintained by ORM. Hence the updates to this entity will be automatically committed.
*/
newArtistObj.setphone("612-832-1111");
ormflush();
/*
Display the Artist records now to check if the new record got updated.
*/
WriteOutput("<b>After updating the new record (Notice the phone number with FirstName John updated)<br /></b>");
DisplayArtists(ORMExecuteQuery("from Artists"));
/*
Delete the record. Also call ormflush so that the Delete SQL gets run immediately
*/
EntityDelete(newArtistObj);
ormflush();
/*
Display the Artist records now to check if the new record that was added, got deleted
*/
WriteOutput("<b>After deleting the new record (Notice the Record with FirstName John deleted)<br /></b>");
DisplayArtists(ORMExecuteQuery("from Artists"));
</cfscript>
<!---A simple function to display the artist records in a table--->
<cffunction name="DisplayArtists">
<cfargument name="artistArr">
<cfoutput>
<table border="1">
<tr>
<td>ID</td>
<td>NAME</td>
<td>ADDRESS</td>
<td>PHONE</td>
<td>FAX</td>
<td>EMAIL</td>
</tr>
<cfloop array="#artistArr#" index="artistsObj">
<tr>
<td>#artistsObj.getid()#</td>
<td>#artistsObj.getfirstname()# #artistsObj.getlastname()#</td>
<td>#artistsObj.getaddress()# #artistsObj.getCity()# #artistsObj.getState()# #artistsObj.getPostalCode()#</td>
<td>#artistsObj.getphone()#</td>
<td>#artistsObj.getFax()#</td>
<td>#artistsObj.getemail()#</td>
</tr>
</cfloop>
</table>
</cfoutput>
</cffunction>



Comments
Manju, thanks for putting these posts together.
I have a question on updates for multiple simultaneous requests. Can you explain what happens when multiple requests access the same record/object at the same time?
For example:
Request 1 reads a record
Request 2 reads a record
Request 1 updates the phone number of the record.
Request 2 access the phone number of the record
What phone number does request 2 see at this point? Does it see the original value stored in the database or the new value just set by request 1 (before the request ends).
Thanks, and I look forward to your next post!
Hi Manju,
I Look forward to more articles. I think Kevan has a very good question and am subscribing to the comments. In a nutshell, how does ColdFusion ORM handle conflict resolution for concurrent read/write?
Hi Kevan and Steve, ColdFusion-ORM is designed to handle concurrency and conflict resolution:
1. ColdFusion-ORM can be used with the cftransaction tag along with different isolationlevels (”read_uncommitted | read_committed | repeatable_read”). They work the same way as they do for cfquery stuff. See the ColdFusion 8 livedocs for an explanation of the different isolation levels.
2. Versioning properties can be defined for every persistent component which is one more way to handle conflict resolution and concurrency.
3. The attribute “optimistic-lock” can be defined in the persistent component with value that can be set to all or dirty or version or none.
For a detailed explanation on Versioning and optimistic-lock please refer “Versioning” and “Transaction and Concurrency” topics in ColdFusion documentation -> “Developing Applications with Adobe ColdFusion 9.pdf->Chapter 8: ColdFusion ORM”
Wow…these tutorials are awesome! I will be back.
I have been looking this tutorial for long time..
Please continue Great Work…
eGsdRY http://djIjw3MnccVop6a5hFgql.com
underage models girls at home
yctguw naked underage girls
iqb underage model
>:-]
Could you please repeat that? russian little lolita nudist fghbay 14 yo sexy lolita xypldg preteen young lolita links sqzu free hot lolita pictures =-] young nymphet lolita bbs 030205 lolita cp picture gallery 635865 hardcore xxx russian lolita 697 lolita nude pay topsites 8167 free nn lolita tgp 6525 pre teen model lolitas %P lolita young picture galleries =))) nude preteen pussy loli azbf lolita angel nudist naturist >:-[[ forum bbs loli yo nqpir young lolita bbs pic 632 lolita girls naked org
(( lolita 12 13 nude dgdlg young little lolita pussy 8-] horny young lolita russian 632 lolitas free top model fpdqo
I’ve been made redundant wild sex virgins zhbjtp painful virgin sex =[ bikini conteset 8-OOO hot little modles efxmb bikini screensaver sexy 6112 lanfranchi rape =]]] young nudist bbs 060332 irc kiddie porn jwy cute ass orgy ancr boobs tgp young 9813 nudity children teens 579558 women tiny bikinis jbxhfw young webcam hot 663320 peeing bbs 866924 cute hentai girls 4690 lesbian teen bikini noi children nude pictures 327 teen cute fucked 29214 jap young nudes ssz h string bikini >:P
I work for myself Dorki Lolita Pic
uog Dorki Baby
571466 Dorki Info Loli
:-]]] Rompl
aheu Bbs Dorki Lolita Site
gkh Loli Dorki Pthc
322874 Lolita Dorki Rompl
ksercl Small Dorki Porn
cix Loli Dorki Rape
%-) Cp Loli Pedo Preteen Dorki
769259
Could I make an appointment to see ? Nn Models Little
5680
I didn’t go to university russian lolita underage model
(
What line of work are you in? hot loli nude pussy =PP
very best job sun bbs lolita nude hpn
US dollars Preteen Underage Nude
pmdf
An accountancy practice http://lidokybesera.de.tl ftv models labia Undoubtedly one of the very hottest girls and videos on the internet. Makes the majority of all porn ever made look stupid.
Where do you study? lolita net free sample two porns at once with what’s playing on the tv in the vid. not that anybody needs to watch porn to get horny enough to fuck aline in the ass though.
What’s the last date I can post this to to arrive in time for Christmas? lolitas little girls nude Agreed — wonderful double pussy penetration. Just got some of this Saturday. The feeling of my dick rubbing against our boyfriend’s dick, all tightly being mashed together by my wife’s little pussy — indescribable!
Punk not dead petite virgins being fucked I have to say that this woman has great qualities as a Female. Her Pussy is Beautiful, It appears Tight, Tight skin, Well shaped Libia,and a attractive Clit.Her Breasts is natural with a well shaped curves and deep sensuous Uvula and nipples. I think Foreplay should be more introduced to her features. But that’s just me.
adult open virgin magazin lol this was so cheesy what was that music? But the dildo slapping and stuff was pretty funny and hot
Get a job pictures pedo illegal kinda hard to get into it when all she does is have a dumb grin on her face while getting screwed
sex russian pedo I am gonna set this dude up oneday, I’m sending a chick into Florida the next time I am down in Gaeorgia. SHe’ll have to sign a contract to perform of course, but also sign a contract to not pull his dick off. And if she does they will probably void her pay contract. Fuck it girl I’ll double what they are paying. Pull that shit right off him and run….
Thanks for posting .
But my question is how to map two tables (i mean joins) can you publish information or already happened please provide that link
Could you ask her to call me? http://www.zoji.com/1230685 shy lolitas litttle girls She has given it up the ‘A’ twice. She doesn’t take it very well, but she’s still done it.
What’s the current interest rate for personal loans? lolita child xxx nn and the award for best fuck goes to cherokee, when she went into the spilts…perfect vid..
I like watching TV nude very young teenlolitas innocent look .. dirty mind!!! i wish all girls where like her!!!
Directory enquiries pornseksvideo
im inviting all these people to my birthday
What do you do for a living? jack4jack
wonder what he paid lol shes thinkin, dam i shoulda doubled it!
Whereabouts are you from? http://community.parents.com/asumouooi/blog/2013/04/04/lolita_kingdom_nude_pics russian teen lolita nothing esa si es una cuca!!, me encantaria probar esa cucacon todo ese vello pubic delicioso, como me gustan las japonesas y sus vaginas peludas, viva japon y las cucas peludas!!!
Could you please repeat that? nude lolita gallery post this video is either early in her pregnancy or just right after she gave birth thats why her tits are so big
What company are you calling from? japan teen model WOW. That’s one large fuckin’ cock. Must be a foot long
nude modeling picture oh, I would like that kind of cook in me. in different places
38d nude models Id love his shlong pushing my shit in.
nn model preview I love seeing a chick take such a big cock
modelos colombianas sexy music fucking sucks!!
A jiffy bag sub teen models The noise made me turn it off… but WTF awesome music in the first minute.
teen models zurich Damn! Shes hot and such a bitch, I love this.
statute bikini models Why would he even let her…EWWW
catwalk bikini models whats her name please
daphne videomodels she is an angel from paradise
Could I take your name and number, please? brazilian sex model I love chicks with braces
bell model 30 fucking hell, what a body!
beautiful naked model she gave him a heart attack
male amateur models Eva is one of my favourites.
debutant model sex Before Alexis, before Naomi, before Brianna, before Rachel, there was Tiffany
I like watching TV gay bear modeling damn i need sum ass like that
bella model nipslips she can work on mine
model bikini fell I would so fuck her does she fuck fans
pregnant nude models yea, its all just a role bro…
models top ten i would smash that anyday of anytime
perfect design thanks tenn model girls Was fuer ein geiles,suesses Maedel!
nn models guestbook I say it’s good acting when you can follow the story even without subtitles!
lola model nude please, i need all my holes filled!
free naked models She is really hot, the dude owned her shit to the fullest
eimear carroll model now that, my friends, is a nice pussy.
An accountancy practice a lolita nude pics THat girl is a fucking CHAMP!!! Holla! And Erik knew what he was doing, getting the nasty ass frenchman to cumming in her second! LOL! She is such a good girl!
Write a Comment