小编jmr*_*igg的帖子

PreparedStatement.executeBatch()之后的getGeneratedKeys()

我想要INSERT使用以下几行PreparedStatement:

ps = con.prepareStatement(query,PreparedStatement.RETURN_GENERATED_KEYS);

for(Element e:listOfElements){
    ps.setString(1,this.col_val_1);
    ps.setString(2,this.col_val_2);
    ps.setInt(3,this.col_val_3);

    ps.addBatch();
}

ps.executeBatch();
ResultSet rs = ps.getGeneratedKeys();
Run Code Online (Sandbox Code Playgroud)

在这一点上,我希望得到每个PK的生成INSERT,我得到这个SQLServerException:

com.microsoft.sqlserver.jdbc.SQLServerException: The statement must be executed before any results can be obtained.
Run Code Online (Sandbox Code Playgroud)

对于每次执行的插入,我期望获得一行ResultSet,因此我可以生成每个PK.

我怀疑错了吗?难道我做错了什么?可以使用批量执行以不同的方式完成吗?

java sql-server jdbc prepared-statement

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

Gradle任务无法找到local.properties文件

首先,我必须承认我对android和ndk有相当的经验,但gradle脚本对我来说是个新主题.我正在开发一个项目,其gradle脚本已经编写(这不是我的部分)并且工作正常.

我的问题是,一个特定的任务似乎找不到属性定义的ndk.dir,它是在local.properties文件中定义的.

项目结构(简化):

_ <project_root>
|_ <sub_project folder>
    ...
    |_ main
    |_ build.gradle
    |_ local.properties
|_ ...
Run Code Online (Sandbox Code Playgroud)

local.properties文件如下所示:

ndk.dir=/home/ubuntu/dev/android-ndk-r9c
Run Code Online (Sandbox Code Playgroud)

在结构的build.gradle文件中定义的任务的有问题部分如下:

task buildNDKFlavorGooglePlayStore(type: Exec) {
    if (project.ext.has('ndk.dir') && (project.ext.get('ndk.dir') != null)) {
        ext.ndkBuild = new File((String)project.ext.get('ndk.dir'), 'ndk-build')
        executable ndkBuild
    } else {
        throw new GradleException('Reason: ndk.dir is missing in ' + projectDir + '/local.properties')
    }
(...)
}
Run Code Online (Sandbox Code Playgroud)

同步项目时,由于定义了gradle异常而出现错误.

有人可以帮忙吗?你能告诉我是否可以调试它?

先感谢您.如有必要,请随时询问额外信息.

groovy android gradle android-ndk

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