cache support

This commit is contained in:
Lunny Xiao 2014-11-08 18:51:42 +08:00
parent 3e0fa232ab
commit 9829026953
2 changed files with 12 additions and 2 deletions

View File

@ -46,7 +46,7 @@ func testOpen() (*DB, error) {
os.Remove("./test.db") os.Remove("./test.db")
return Open("sqlite3", "./test.db") return Open("sqlite3", "./test.db")
case "mysql": case "mysql":
return Open("mysql", "root:@/core_test?charset=utf8&parseTime=true") return Open("mysql", "root:@/core_test?charset=utf8")
default: default:
panic("no db type") panic("no db type")
} }
@ -228,7 +228,8 @@ func BenchmarkSliceInterfaceQuery(b *testing.B) {
if err != nil { if err != nil {
b.Error(err) b.Error(err)
} }
if slice[1].(string) != "xlw" { fmt.Println(slice)
if *slice[1].(*string) != "xlw" {
fmt.Println(slice) fmt.Println(slice)
b.Error(errors.New("name should be xlw")) b.Error(errors.New("name should be xlw"))
} }

View File

@ -24,6 +24,7 @@ type Uri struct {
// a dialect is a driver's wrapper // a dialect is a driver's wrapper
type Dialect interface { type Dialect interface {
SetLogger(logger ILogger)
Init(*DB, *Uri, string, string) error Init(*DB, *Uri, string, string) error
URI() *Uri URI() *Uri
DB() *DB DB() *DB
@ -85,6 +86,7 @@ type Base struct {
dialect Dialect dialect Dialect
driverName string driverName string
dataSourceName string dataSourceName string
Logger ILogger
*Uri *Uri
} }
@ -92,6 +94,10 @@ func (b *Base) DB() *DB {
return b.db return b.db
} }
func (b *Base) SetLogger(logger ILogger) {
b.Logger = logger
}
func (b *Base) Init(db *DB, dialect Dialect, uri *Uri, drivername, dataSourceName string) error { func (b *Base) Init(db *DB, dialect Dialect, uri *Uri, drivername, dataSourceName string) error {
b.db, b.dialect, b.Uri = db, dialect, uri b.db, b.dialect, b.Uri = db, dialect, uri
b.driverName, b.dataSourceName = drivername, dataSourceName b.driverName, b.dataSourceName = drivername, dataSourceName
@ -144,6 +150,9 @@ func (db *Base) DropTableSql(tableName string) string {
func (db *Base) HasRecords(query string, args ...interface{}) (bool, error) { func (db *Base) HasRecords(query string, args ...interface{}) (bool, error) {
rows, err := db.DB().Query(query, args...) rows, err := db.DB().Query(query, args...)
if db.Logger != nil {
db.Logger.Info("[sql]", query, args)
}
if err != nil { if err != nil {
return false, err return false, err
} }