Преглед изворни кода

添加 MustGet 接口,ExecOne 可以返回 插入ID

paddy пре 3 година
родитељ
комит
951e8d1ddf
2 измењених фајлова са 20 додато и 6 уклоњено
  1. 14 0
      session_get.go
  2. 6 6
      session_raw.go

+ 14 - 0
session_get.go

@@ -23,6 +23,20 @@ func (session *Session) Get(bean interface{}) (bool, error) {
 	return session.get(bean)
 	return session.get(bean)
 }
 }
 
 
+func (session *Session) MustGet(bean interface{}) error {
+	if session.isAutoClose {
+		defer session.Close()
+	}
+	ok, err := session.get(bean)
+	if err != nil {
+		return err
+	}
+	if !ok {
+		return errors.New("no data found")
+	}
+	return nil
+}
+
 func (session *Session) get(bean interface{}) (bool, error) {
 func (session *Session) get(bean interface{}) (bool, error) {
 	defer session.resetStatement()
 	defer session.resetStatement()
 
 

+ 6 - 6
session_raw.go

@@ -345,14 +345,14 @@ func (session *Session) Exec(sqlOrArgs ...interface{}) (sql.Result, error) {
 	return session.exec(sqlStr, args...)
 	return session.exec(sqlStr, args...)
 }
 }
 
 
-func (session *Session) ExecOne(sqlOrArgs ...interface{}) error {
-	updateCount, err := session.Exec(sqlOrArgs...)
+func (session *Session) ExecOne(sqlOrArgs ...interface{}) (lastInsertId int64, err error) {
+	execRet, err := session.Exec(sqlOrArgs...)
 	if err != nil {
 	if err != nil {
-		return err
+		return 0, err
 	}
 	}
-	affected, err := updateCount.RowsAffected()
+	affected, err := execRet.RowsAffected()
 	if affected != 1 {
 	if affected != 1 {
-		return errors.New("affected rows not equal one")
+		return 0, errors.New("affected rows not equal one")
 	}
 	}
-	return nil
+	return execRet.LastInsertId()
 }
 }