小编Uhl*_*len的帖子

存储过程输出参数由iBATIS设置回POJO

我正在使用iBATIS在MSSQL Server上调用存储过程,输入参数是放在地图上的POJO上的属性:

Map<String, Object> saveMap = new HashMap<String, Object>();
saveMap.put("obj", myArticle);
update("save", saveMap);
Run Code Online (Sandbox Code Playgroud)

所有参数都正确设置为过程的输入,因此没有任何错误.但其中一个参数是输出参数,我期望它被设置回POJO,而是"obj.new"=false由iBATIS将一个额外的映射放到地图上.这是映射的简化版本,显示了基本思想:

    <procedure id="save">
    {<include refid="Core.returned_value" />
    CALL SPRC_ARTICLE_NAME_SAVE (
        <include refid = "Core.common_fields" />
        @pArticle_id = #obj.art_id#
    ,   @pArtname = #obj.artname#
    ,   @pNewArticleName_flg = #obj.new,mode=INOUT#
    )}
</procedure>
Run Code Online (Sandbox Code Playgroud)

调用该过程后,我在Map中传递给iBATIS的两个映射:

  • "obj"=POJO
  • "obj.new"=False

现在我看到iBatis文档"当执行存储过程时 - iBATIS将为OUTPUT参数创建对象",所以它是有道理的.但我的问题是,有没有办法指示iBATIS在调用过程后将布尔值放回到POJO?我宁愿不做额外的工作,从地图中获取价值并将其设置为我自己的POJO.

//Uhlén

java orm ibatis

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

通过Windows远程桌面(tsclient)编写Java时创建HUGE文件

当我们的Swing应用程序通过Windows远程桌面将文件写入用户本地计算机时,我们的客户报告了一个非常奇怪的问题(该应用程序托管在用户连接的终端服务器上).

流程是:

  • 用户通过远程桌面登录并运行应用程序(C:\包含在"本地资源"中)
  • 在工作时,他们将数据从数据库导出到文件中
  • 用户选择要导出的数据
  • 用户在本地计算机上选择目标文件 \\tsclient\C\Temp\TestFile.txt
  • 文件可能很大,因此从数据库中提取1000行并按批次写入文件
  • 在第二批,当Java打开文件并再次写入文件时,一些非常奇怪的东西开始发生!
    • 文件大小迅速增加,停止在2 GB左右
    • 然后继续将数据写入文件

我不确定这是核心Java库,远程桌面实现还是组合中的问题.我们的应用程序也通过Citrix托管,工作正常,写入本地磁盘或UNC网络路径也可以正常工作.

我已经创建了一个SSCCE来演示这个问题,用远程桌面连接到计算机(确保C:\是"本地资源")并运行该程序以查看一些非常奇怪的行为!我正在使用JDK-7u45.

import static java.nio.file.StandardOpenOption.APPEND;
import static java.nio.file.StandardOpenOption.CREATE;
import static java.nio.file.StandardOpenOption.TRUNCATE_EXISTING;
import static java.nio.file.StandardOpenOption.WRITE;

import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import java.nio.file.Files;
import java.nio.file.OpenOption;
import java.util.Collections;

/**
 * Demonstrates weird issue when writing (appending) to a file over TsClient (Microsoft Remote Desktop).
 * 
 * @author Martin
 */
public class WriteOverTsClientDemo
{
    private static final …
Run Code Online (Sandbox Code Playgroud)

java windows file-io remote-desktop

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

标签 统计

java ×2

file-io ×1

ibatis ×1

orm ×1

remote-desktop ×1

windows ×1