小编Luc*_*cas的帖子

在 Go 中使用 pgx 连接到 postgres 数据库

我正在尝试使用jackc/pgx包连接到我的 postgres 数据库,并且我正在按照提供的示例进行操作。问题是代码卡在 connect 调用处。我尝试在它之后立即打印一些内容,但它没有打印。

var dbURL string = fmt.Sprintf("postgresql://%s:%s@%s:%s/%s", user, password, host, port, dbname)

fmt.Println(dbURL)

conn, err := pgx.Connect(context.Background(), dbURL)
if err != nil {
    fmt.Fprintf(os.Stderr, "Unable to connect to database: %v\n", err)
    os.Exit(1)
}
defer conn.Close(context.Background())

var text string
err = conn.QueryRow(context.Background(), "select text from questions where id=$1", 1).Scan(&text)
if err != nil {
    fmt.Fprintf(os.Stderr, "QueryRow failed: %v\n", err)
    os.Exit(1)
}

fmt.Println(text)
Run Code Online (Sandbox Code Playgroud)

输出:

postgresql://postgres:password@127.0.0.1:52269/database_name
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?我可以使用 pgAdmin 4 连接到数据库,并且在使用 go 中的标准 sql 之前我已经连接到它。

connectionString := fmt.Sprintf("user=%s password=%s dbname=%s …
Run Code Online (Sandbox Code Playgroud)

postgresql go

7
推荐指数
1
解决办法
1万
查看次数

允许 TextView 增长到约束布局中的某个点

有 TextView1 和 TextView2。TextView2 应该浮动在 TextView1 的右侧。只要两个文本视图的总宽度不使 TextView2 与右侧的框重叠,TextView1 就应该向右增长。发生这种情况时,TextView1 应该换行到第二行。

当只有一个 TextView 时,可以通过将 TextView 的宽度设置为 0dp 并将大小限制为框来实现。但是有两个文本视图我不知道如何实现这一点。

在此处输入图片说明

android android-constraintlayout

4
推荐指数
1
解决办法
219
查看次数

如何对所有请求使用大猩猩中间件处理程序?

我想使用此处指定的处理程序来记录所有内容。

这就是我所拥有的:

r := mux.NewRouter()
s := r.PathPrefix("/api/v1").Subrouter()

s.HandleFunc("/abc", handler.GetAbc).Methods("GET")
s.HandleFunc("/xyz", handler.GetXyz).Methods("GET")
Run Code Online (Sandbox Code Playgroud)

我想使用日志中间件,但我不想在每一行中重复它,正如它们在 github 中显示的那样:

r.Handle("/admin", handlers.LoggingHandler(os.Stdout, http.HandlerFunc(ShowAdminDashboard)))
r.HandleFunc("/", ShowIndex)
Run Code Online (Sandbox Code Playgroud)

有没有办法只将通用日志中间件传递给r,所有通过r路由器的东西都会先通过中间件?

router go mux

4
推荐指数
3
解决办法
2313
查看次数

在 Java 选项中加入流中的所有子集

这是原始代码:

Set<StatuteType> statuteTypes = registration.getStudent().getStudentStatutesSet()
    .stream()
    .map(StudentStatute_Base::getType)
    .collect(Collectors.toSet());
Run Code Online (Sandbox Code Playgroud)

我想将所有内容都包装在 Optional 中以避免空指针和所有内容。如果学生不存在或法规集不存在。

我拥有的:

Set<StatuteType> statuteTypes = Optional.of(registration)
            .map(Registration_Base::getStudent)
            .map(student -> student.getStudentStatutesSet())
            .flatMap(Collection::stream)
            .map(StudentStatute_Base::getType)
            .collect(Collectors.toSet())
            .orElse(null);
Run Code Online (Sandbox Code Playgroud)

这样的事情有可能吗?我想避免在这个链中检查空值,如果有空值,也只返回一个简单的空值,而不是得到一个异常。

通常,我认为合乎逻辑的是使用此处描述flatMap,但在这种情况下似乎不正确,因为 Optional flatmap 返回一个 Optional。

java optional

0
推荐指数
1
解决办法
77
查看次数