adobe photo shop font download

cs5 web premium cheapest adobe photoshop 7 free download adobe photoshop cs3 v10 download for windows buy cheap download adobe acrobat pdf writer free download for adobe distiller pc

adobe reader download mac osx

cheap adobe photoshop adobe after effects download adobe reader tar gz download buy cheap find free adobe download adobe 8 download

adobe download interuption

photoshop elements buy cheap download adobe reader version 5 download adobe acrobat 9 cheap internet explorer crashes upon adobe download free adobe acrobat software download

download adobe photoshop cs3 rapidshare

buy cheap adobe dreamweaver adobe acrobat 8 update download adobe photoshop cs3 iso file download cheap free adobe 8 download adobe fine reader free download

adobe flash video exporter download

adobe fireworks cheap adobe pagemaker download full free adobe acrobat 7 pro download buy cheap adobe illustrator cs 2 download for windows adobe illustrator crack download

download adobe documents

buy cheap creative suite 4 adobe master collection torrent download where to download adobe acrobat buy cheap adobe photoshop album download free download adobe illustrator cs3 mac

free adobe photoshop software download

Adobe Creative Suite 5.5 buy cheap how do i download adobe reader for free adobe version 5 download cheap download madden 2005 strategy guides to adobe reader for safe and secure free adobe flash download

unable to download adobe acrobat reader

Adobe Flash CS5.5/a> download adobe illustrator cs download adobe acrobat megaupload cheapest freeware adobe acrobat download free software download adobe reader

adobe live motion download

buy cheap Adobe After Effects CS5.5 free safe download of adobe acrobat reader download free adobe acrobat cheapest download a older version of flash player adobe free to download adobe illustrator

adobe photoshop cs 3 download

adobe software cheap download adobe acrobat reader free adobe reader slowenian download cheapest adobe acrobat 6 full download adobe acrobat 6 pro download

free trial download adobe photoshop mac

creative suite 5 cheapest download record adobe flash movie adobe patch download cheapest internet explorer crashes upon adobe download adobe flashplayer active x download

get free download of adobe flash cs3

buy online adobe incopy adobe photoshop download discount software download adobe 9 free cheap acrobat reader adobe download download the adobe photoshop cs2 book for digital photographers

adobe reader kostenloser download

adobe creative suite 5 cheap adobe 7 free download adobe premiere download cheapest adobe acrobat download vista where to download adobe acrobat

download trial version of adobe acrobat 8 professional

cheap photoshop lightroom 3 download stand alone adobe flash adobe flash palyer download cheap adobe acrobat viewer download free adobe professional download

adobe download

buy online cs5 master collection free download adobe acrobat reader professional 6 cracked adobe indesign cs2 mac download cheap adobe pdf printer download download adobe premiere pro cs3

free adobe acrobat writer download

buy online adobe premiere pro adobe cs3 patch download free adobe flshplayer 9 download buy online free adobe premiere download adobe acrobat pdf writer download

adobe illustrator and download

adobe web premium buy online download free edition adobe photoshop instructions on how to download documents on to adobe reader buy online adobe illustrator cs download adobe flash player downloader free download hunter grabber

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



1
Author:  Kevan Stannard | Date:  July 14, 2009 | Time:  5:36 PM

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!

2
Author:  Steven Erat | Date:  July 14, 2009 | Time:  8:43 PM

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?

3
Author:  Manjukiran | Date:  July 14, 2009 | Time:  11:38 PM

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”

4
Author:  Chris | Date:  November 8, 2009 | Time:  3:29 AM

Wow…these tutorials are awesome! I will be back.

5
Author:  kandaswamy | Date:  November 30, 2010 | Time:  8:44 AM

I have been looking this tutorial for long time..

Please continue Great Work…

6
Author:  jones | Date:  March 29, 2011 | Time:  6:44 AM
7
Author:  Cfenahdo | Date:  May 14, 2011 | Time:  1:30 PM
8
Author:  Cnbuzhws | Date:  August 1, 2011 | Time:  11:07 PM
9
Author:  Idguzfqs | Date:  August 1, 2011 | Time:  11:08 PM
10
Author:  Tqgaqahs | Date:  September 1, 2011 | Time:  8:24 PM
11
Author:  Oxamqqqg | Date:  September 16, 2011 | Time:  4:47 PM

Could I make an appointment to see ? Nn Models Little
5680

12
Author:  Qkpuwjus | Date:  November 7, 2011 | Time:  7:49 PM

I didn’t go to university russian lolita underage model :( (

13
Author:  Vjzzpbjf | Date:  November 7, 2011 | Time:  7:50 PM

What line of work are you in? hot loli nude pussy =PP

14
Author:  Fakgkixo | Date:  November 7, 2011 | Time:  7:50 PM

very best job sun bbs lolita nude hpn

15
Author:  Okouqgbw | Date:  December 6, 2011 | Time:  5:16 PM

US dollars Preteen Underage Nude
pmdf



Write a Comment

Note: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>