Break find code into sql.go file
This commit is contained in:
		
							parent
							
								
									69f53a4b41
								
							
						
					
					
						commit
						0491675ae8
					
				
							
								
								
									
										17
									
								
								orm.go
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								orm.go
									
									
									
									
									
								
							| @ -2,8 +2,6 @@ package gorm | ||||
| 
 | ||||
| import ( | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"reflect" | ||||
| 
 | ||||
| 	"strconv" | ||||
| 
 | ||||
| @ -116,23 +114,12 @@ func (s *Orm) Exec(sql ...string) *Orm { | ||||
| } | ||||
| 
 | ||||
| func (s *Orm) First(out interface{}) *Orm { | ||||
| 	s.setModel(out) | ||||
| 	rows, err := s.db.Query("SELECT * from users limit 1") | ||||
| 	s.Error = err | ||||
| 	for rows.Next() { | ||||
| 		dest := reflect.ValueOf(out).Elem() | ||||
| 		fmt.Printf("%+v", dest) | ||||
| 		columns, _ := rows.Columns() | ||||
| 		var values []interface{} | ||||
| 		for _, value := range columns { | ||||
| 			values = append(values, dest.FieldByName(value).Addr().Interface()) | ||||
| 		} | ||||
| 		s.Error = rows.Scan(values...) | ||||
| 	} | ||||
| 	s.explain(out, "Query").query(out) | ||||
| 	return s | ||||
| } | ||||
| 
 | ||||
| func (s *Orm) Find(out interface{}) *Orm { | ||||
| 	s.explain(out, "Query").query(out) | ||||
| 	return s | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										26
									
								
								sql.go
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								sql.go
									
									
									
									
									
								
							| @ -1,18 +1,42 @@ | ||||
| package gorm | ||||
| 
 | ||||
| import ( | ||||
| 	"reflect" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"fmt" | ||||
| ) | ||||
| 
 | ||||
| func (s *Orm) explain(value interface{}, operation string) { | ||||
| func (s *Orm) explain(value interface{}, operation string) *Orm { | ||||
| 	s.setModel(value) | ||||
| 	switch operation { | ||||
| 	case "Save": | ||||
| 		s.saveSql(value) | ||||
| 	case "Delete": | ||||
| 		s.deleteSql(value) | ||||
| 	case "Query": | ||||
| 		s.querySql(value) | ||||
| 	} | ||||
| 	return s | ||||
| } | ||||
| 
 | ||||
| func (s *Orm) querySql(out interface{}) { | ||||
| 	s.Sql = "SELECT * from users limit 1" | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func (s *Orm) query(out interface{}) { | ||||
| 	rows, err := s.db.Query(s.Sql) | ||||
| 	s.Error = err | ||||
| 	for rows.Next() { | ||||
| 		dest := reflect.ValueOf(out).Elem() | ||||
| 		fmt.Printf("%+v", dest) | ||||
| 		columns, _ := rows.Columns() | ||||
| 		var values []interface{} | ||||
| 		for _, value := range columns { | ||||
| 			values = append(values, dest.FieldByName(value).Addr().Interface()) | ||||
| 		} | ||||
| 		s.Error = rows.Scan(values...) | ||||
| 	} | ||||
| 	return | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Jinzhu
						Jinzhu