Blog

ColdBox 4.0 Dealing With Datasources

Brad Wood February 19, 2015

Spread the word

Brad Wood

February 19, 2015

Spread the word


Share your thoughts

ColdBox allows you to store the details of your CF datasources in your configuration file.  This prevents you from needing to store usernames and passwords in  your actual code, and allows you  to easily switch an application to another database, even with the environment control.  In  the past this datasource information was presented to you as a CFC object with getter methods.  

In ColdBox 4.0 we recognized that the datasource bean was really just a value object with no behaviors-- only data.  In the spirit of simplification,  we've replaced the datasource bean with a standard struct of data.  It contains the same information, but instead of calling a getter, just reference the keys in the struct.  An extended find and replace on your app's code base should made quick work of this.

Here's an example of what your code might have looked like on ColdBox 3.x

<---  Dependencies --->
<cfproperty name="dsn" inject="coldbox:datasource:mydsn">

<---  list --->
<cffunction name="list" output="false" access="public" returntype="query" hint="Return the contacts">
	<cfset var q = "">
	
	<cfquery name="q" datasource="#dsn.getName()#">
	SELECT * 
	    FROM contacts
	ORDER BY name asc
	</cfquery>
	
	<cfreturn q>
	
</cffunction>

And here's that same code ready for ColdBox 4:

<---  Dependencies --->
<cfproperty name="dsn" inject="coldbox:datasource:mydsn">

<---  list --->
<cffunction name="list" output="false" access="public" returntype="query" hint="Return the contacts">
	<cfset var q = "">
	
	<cfquery name="q" datasource="#dsn.name#">
	SELECT * 
	    FROM contacts
	ORDER BY name asc
	</cfquery>
	
	<cfreturn q>
	
</cffunction>

You'll note the only difference is dsn.getName() turned into dsn.name.  Your /config/ColdBox.cfc file will look the same as always.  No changes there!

Add Your Comment

Recent Entries

Into the Box 2024: Your Gateway to the Future of Tech!

Into the Box 2024: Your Gateway to the Future of Tech!

Are you ready to advance your coding skills? The future of Modern Web Development awaits at Into the Box 2024, and we're thrilled to announce that due to high demand, we're extending our Early Bird pricing for an additional week!

Maria Jose Herrera
Maria Jose Herrera
April 26, 2024
Hackers demand a ransom to restore data from my ColdFusion web applications!

Hackers demand a ransom to restore data from my ColdFusion web applications!

Hackers demand a ransom to restore data from my ColdFusion web applications!

Unfortunately, we often hear this message from clients who thought it would never happen to them... until it did. Some believed they could delay the expense of Implementing ColdFusion security best practices for one year, while others were tempted to put it off for just a few months. However, in today's rapidly evolving digital landscape, the security of web applications, including ColdFusio...

Cristobal Escobar
Cristobal Escobar
April 16, 2024