小编lin*_*ngz的帖子

JDBI-JDBI中@define和@bind有什么区别?

这两个函数是否都已清理/可以防止SQL注入?例如,考虑以下内容:

@SqlUpdate("INSERT INTO <tableName> (<columns>) VALUES (<values>)")
    public abstract void addRowToDataset(@Define("tableName") String tableName, @Define("columns") String columns, @BindIn("values") Collection<Object> values);
Run Code Online (Sandbox Code Playgroud)

我目前的理解是@define从字面上按原样将字符串插入查询中,但@bind会进行清理。因此,如果我们控制columnsand tableName parameters并且只有values参数是用户输入,那么我们应该可以。

jdbi

5
推荐指数
1
解决办法
1194
查看次数

为什么select case将我的for循环切成两半?

在下面的代码片段中,tasks是一个长度为30的缓冲通道,其中只包含30个元素.我正在写一个for循环来操作每个任务,从一个通道读入.

for i := 0; i < len(tasks); i++ {
    fmt.Println(i)
    select {
      case task := <-tasks: 
        fmt.Println(task)
        // Do something

    }
}

fmt.Println("Done")
Run Code Online (Sandbox Code Playgroud)

但是,这个for循环只从0到14运行.当我改变这个通道的长度(这取决于我有的任务元素的数量)时,for循环总是只运行一半len(tasks).为什么会这样?

背景:我使用缓冲通道执行任务,因为我打算在goroutine中执行每个任务,如果失败则处理任务.但是我现在已经将代码切换到for循环中的一个选择的情况,我很困惑为什么select case导致for循环只执行一半的时间.我确认这个for循环已经完成执行,并且在最后一次执行之后,i等于14(通道长度为30).

go

3
推荐指数
2
解决办法
101
查看次数

Set :: size上的groovy错误中的Java流收集器

我正在尝试SELECT MAX(COUNT DISTINCT field_x) FROM stream GROUP BY field_y;使用Java Streams/Collectors在一个groovy脚本中做一个.基本上,我想要一个解决方案COUNT DISTINCT,我可以接受.max.

我一直在尝试这篇文章中的解决方案:java 8 - stream,map和count distinct

但得到错误:

unexpected token: : @ line 65, column 114.
   ")}, Collectors.toSet()), Set::size).val
Run Code Online (Sandbox Code Playgroud)

Groovy中似乎有一个问题Set::sizeMap::size.

我已经导入都java.util.Mapjava.util.Set无济于事.这是Groovy语法/导入Java类的问题还是我正在使用的问题Collectors?作为参考,我只是尝试在原始后期解决方案中在此地图上实现forEach println:

Map<Integer, Integer> map = bids.stream().collect(
    groupingBy(
            Bid::getBidderUserId,
            collectingAndThen(
                    mapping(Bid::getAuctionId, toSet()),
                    Set::size)));
Run Code Online (Sandbox Code Playgroud)

如果这更适合作为评论而道歉,但显然需要更多的声誉来评论而不是提问.

java groovy java-8 java-stream collectors

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

标签 统计

collectors ×1

go ×1

groovy ×1

java ×1

java-8 ×1

java-stream ×1

jdbi ×1