Queries
BoxLang provides the easiest way to query databases with powerful SQL execution and manipulation capabilities
💻 Queries in Code
// Create a query programmatically
users = queryNew(
"id,name,email,age",
"integer,varchar,varchar,integer",
[
{ id: 1, name: "Alice", email: "alice@example.com", age: 30 },
{ id: 2, name: "Bob", email: "bob@example.com", age: 25 },
{ id: 3, name: "Charlie", email: "charlie@example.com", age: 35 }
]
);
// Access query properties
println( "Records: " & users.recordCount );
println( "Columns: " & users.columnList );
println( "First user: " & users.name[ 1 ] );
// Functional programming with queries
println( "--- Functional Operations ---" );
// Filter - get rows matching condition (returns new query)
adults = users.filter( ( row ) -> row.age >= 30 );
println( "Adults: " & adults.recordCount );
// Map - transform each row (returns array of transformed values)
emails = users.map( ( row ) -> row.email.ucase() );
println( "Emails: " & emails.toString() );
// Reduce - combine all rows into single value
totalAge = users.reduce( ( sum, row ) -> sum + row.age, 0 );
println( "Total age: " & totalAge );
// Each - perform action on each row
users.each( ( row, index ) => {
println( "#index#: #row.name# (#row.age#)" );
} );
// Sort - order by column(s)
sortedUsers = users.sort( "age DESC, name ASC" );
println( "Sorted: " & sortedUsers.name.toList() );📚 Query Built-In Functions (BIFs)
🔨 Creation & Conversion Functions
Function
Purpose
Example
🔍 Access & Retrieval Functions
Function
Purpose
Example
📊 Metadata Functions
Function
Purpose
Example
➕ Modification Functions
Function
Purpose
Example
🔄 Functional Programming Functions
Function
Purpose
Example
📐 Manipulation Functions
Function
Purpose
Example
🔧 Utility Functions
Function
Purpose
Example
🎯 Core Java Methods
Collection Interface Methods
Method
Purpose
Returns
Query-Specific Methods
Method
Purpose
Returns
Column Methods
Method
Purpose
Returns
Metadata & Duplication
Method
Purpose
Returns
Advanced Methods
Method
Purpose
Returns
📖 What is a Query?
🔌 Datasource Configuration
Configuration Locations
Basic Datasource Structure
Supported Database Drivers
Driver
Example URL
Connection Pool Options (HikariCP)
Default Datasource
Inline Datasource
https://github.com/ortus-boxlang/boxlang-docs/blob/v1.x/boxlang-language/datasources.mdJDBC & Databases🔄 Iterating Over Queries
For-In Loop (Recommended)
Each with Closure
Traditional Index Loop
Array Notation Access
🔒 Using Query Parameters (Preventing SQL Injection)
Type
Description
Example
🏗️ Building Queries Programmatically
🔍 Query of Queries (QoQ)
📦 Alternative Return Types
🔄 Query Transformers — Custom Result Formatting
Property
Source
Description
🏗️ QB - Query Builder Module
⚙️ Query Options
Option
Type
Description
Example
Option
Type
Description
Example
CFML Option
BoxLang Equivalent
Last updated
Was this helpful?
