为sql库操作制作通用选择函数

时间:2019-09-04 17:19:55

标签: sql go struct

好吧,我正在尝试制作一个选择功能,像这样工作

从主函数中,我将使用必要的变量调用此选择函数。然后select函数将在数据库中运行查询,并提供相关信息。

现在是go lang语言,如果我们要对结果进行选择查询,我们需要一个可以获取结果的结构。由于将从主函数调用该函数,并且无法预测变量,因此我们无法在手之前声明结构,因此我被困在这里。谁能给我解决方案?

所以基本上我想做的是我们可以像

那样简单地调用查询

-从用户id = 1的用户中选择姓名和电话- 因此,从主函数中,我们将获得列名称(名称,电话),表名称(用户)和条件(用户ID = 1)之类的值

我们会将这些信息传递给select函数,它将运行查询并将结果返回给我们。

无论查询是什么,它都应该像它一样工作。谁能给我一个样本或想法,以解决这个问题

func select() {
  //DB CONNECTION HERE

type User struct {
        Name    string `json:"name"`
        Age     string `json:"age"`
        Email   string `json:"email"`
        Phone   string `json:"phone"`
        Address string `json:"address"`
    }

    results, err := db.Query("SELECT Name, Age, Email, Phone, Address FROM `users` where personId=12 ")
    if err != nil {
        panic(err.Error())
    }

    for results.Next() {
        var user User
        var email User
        var age User
        var phone User
        var address User

        err = results.Scan(&user.Name, &age.Age, &email.Email, &phone.Phone, &address.Address)

        if err != nil {
            panic(err.Error())
        }

        fmt.Println(user.Name)
        fmt.Println(age.Age)
        fmt.Println(email.Email)
        fmt.Println(phone.Phone)
        fmt.Println(address.Address)
    }

现在zou可以看到这是我们知道查询的代码,因此我们根据它创建了一个结构,但是我上面描述的问题呢?

0 个答案:

没有答案