package database import "database/sql" type OracleDataBase struct { dbConn *sql.DB } func (a *OracleDataBase) Begin() (Tx, error) { tx, err := a.dbConn.Begin() if err != nil { return nil, err } return &SQLTxAdapter{tx: tx}, nil } func (a *OracleDataBase) Commit() error { // This is not applicable for sql.DB as it doesn't have a Commit method on the DB itself. // This method is here for interface consistency. return nil } func (a *OracleDataBase) Rollback() error { // This is not applicable for sql.DB as it doesn't have a Rollback method on the DB itself. // This method is here for interface consistency. return nil } func (a *OracleDataBase) Exec(query string, args ...interface{}) (sql.Result, error) { return a.dbConn.Exec(query, args...) } func (a *OracleDataBase) Query(query string, args ...interface{}) (*sql.Rows, error) { return a.dbConn.Query(query, args...) } type SQLTxAdapter struct { tx *sql.Tx } func (t *SQLTxAdapter) Commit() error { return t.tx.Commit() } func (t *SQLTxAdapter) Rollback() error { return t.tx.Rollback() } func (t *SQLTxAdapter) Exec(query string, args ...interface{}) (sql.Result, error) { return t.tx.Exec(query, args...) } func (t *SQLTxAdapter) Query(query string, args ...interface{}) (*sql.Rows, error) { return t.tx.Query(query, args...) }