我正在尝试使用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) 有 TextView1 和 TextView2。TextView2 应该浮动在 TextView1 的右侧。只要两个文本视图的总宽度不使 TextView2 与右侧的框重叠,TextView1 就应该向右增长。发生这种情况时,TextView1 应该换行到第二行。
当只有一个 TextView 时,可以通过将 TextView 的宽度设置为 0dp 并将大小限制为框来实现。但是有两个文本视图我不知道如何实现这一点。
我想使用此处指定的处理程序来记录所有内容。
这就是我所拥有的:
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路由器的东西都会先通过中间件?
这是原始代码:
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。