orm.go - Database Operations
Overview
orm.go provides database operation utilities for convenient data conversion between Go structs and database values. It implements driver.Valuer and sql.Scanner interfaces for seamless database integration.
Functions
Scan()
Scan database results into structs.
Parameters:
src- Source data ([]byte or string)dst- Destination struct pointer
Returns:
- Error if scanning fails
Supported Formats:
- JSON objects:
{...} - JSON arrays:
[...] - Empty values: Applies default values from struct tags
Example:
Notes:
- Automatically detects JSON format from source
- Applies default values from struct tags when source is empty
- Logs errors during scanning process
- Supports both []byte and string inputs
Value()
Convert struct to database value.
Parameters:
m- Struct or struct pointer
Returns:
value- Database value ([]byte)err- Error if conversion fails
Behavior:
- Returns
[]byte("null")if input is nil - Applies default values for non-nil structs before conversion
- Converts struct to JSON format
Example:
Notes:
- Implements
driver.Valuerinterface for database compatibility - Automatically applies default values before conversion
- Returns JSON-encoded bytes
- Handles nil values gracefully
Usage Patterns
Database Model Definition
CRUD Operations
With GORM Integration
Batch Operations
Best Practices
Default Values
Error Handling
Performance Considerations
Integration Examples
With SQL Database
With Redis
With HTTP API
Related Documentation
- must.go - Error assertion utilities
- validator - Data validation
- defaults - Default value handling
- API Documentation
- Module Overview