Pure Mojo SQL database client with query builder and connection pooling.
- Query Builder - Type-safe SQL construction
- Connection Pool - Efficient connection management
- Result Sets - Structured query results
- Transactions - ACID transaction support
- Multiple Databases - PostgreSQL, MySQL, SQLite patterns
pixi add mojo-sqlfrom mojo_sql import Query
# SELECT
var q = Query.select("users")
.columns("id", "name", "email")
.where("active", "=", "1")
.order_by("name")
.limit(10)
.build()
# INSERT
var q = Query.insert("users")
.value("name", "John")
.value("email", "john@example.com")
.build()
# UPDATE
var q = Query.update("users")
.set("name", "Jane")
.where("id", "=", "1")
.build()
# DELETE
var q = Query.delete("users")
.where("id", "=", "1")
.build()from mojo_sql import MockConnection, Query
var conn = MockConnection()
conn.connect()
var query = Query.select("users").build()
var result = conn.execute(query)
if result.is_ok():
for i in range(result.row_count()):
var row = result.result_set()[i]
print(row.get_string("name"))from mojo_sql import ConnectionPool, ConnectionConfig
var config = ConnectionConfig("localhost", 5432, "mydb")
var pool = ConnectionPool(config, min_size=2, max_size=10)
pool.initialize()
var idx = pool.acquire()
if idx >= 0:
var conn = pool.get_connection(idx)
# Use connection...
pool.release(idx)
pool.shutdown()| Class | Description |
|---|---|
Query |
SQL query builder |
ConnectionPool |
Connection pooling |
ResultSet |
Query results |
Row |
Single result row |
Transaction |
Transaction management |
mojo run tests/test_sql.mojoApache 2.0
This library is part of mojo-contrib, a collection of pure Mojo libraries.