小编Mos*_*sha的帖子

为什么PreparedStatement.setNull需要sqlType?

  1. 根据PreparedStatement.setNull的java文档:"注意:您必须指定参数的SQL类型".该方法需要列的SQL类型的原因是什么?

  2. 我注意到传递java.sql.Types.VARCHAR也适用于非varchar列.是否存在VARCHAR不适合的情况(某些列类型或某些数据库提供程序)?

谢谢.

java sql jdbc

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

强制杰克逊使用注释添加附加包装

我有以下课程:

public class Message {
    private String text;

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }    
}
Run Code Online (Sandbox Code Playgroud)

在默认情况下使用Jackson将实例转换为JSON时,我得到:

{"text":"Text"}
Run Code Online (Sandbox Code Playgroud)

我想得到:

{"message":{"text":"Text"}}
Run Code Online (Sandbox Code Playgroud)

是否有任何JAXB/Jackson注释可用于实现我的目标?

作为一种解决方法,我可以用另一个类包装我的类:

public class MessageWrapper {
    private Message message;

    public Message getMessage() {
        return message;
    }

    public void setMessage(Message message) {
        this.message = message;
    }
}
Run Code Online (Sandbox Code Playgroud)

或更通用的解决方案:

public class JsonObjectWrapper<T> {
    /**
     * Using a real map to allow wrapping multiple objects
     */
    private Map<String, T> wrappedObjects = new HashMap<String, T>(); …
Run Code Online (Sandbox Code Playgroud)

java jackson

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

CXF - 如何声明所需的属性和非原始属性?

我有一个web sercice方法来接收一个对象.其中一个属性是"interval",它是一个整数.

我想使这个属性成为必需但没有提供任何默认值 - 我希望用户需要显式设置一个值.

如果我使用int interval- 该属性公开为int,如果用户没有显式设置该属性,则将发送零(原始int的Java默认值).

如果我使用Integer interval- 该属性公开为Integer并在WSDL中声明为可选,因此用户在发送请求之前无法看到它是必需的.

如果我用Integer interval@XmlElement(required = true)@XmlElement(nillable = false)-属性公开为int类型.

该属性可以包含任何整数 - 负数,零和正数,因此我无法使用默认值来指示未明确设置该属性.

我可以用BigInteger interval@XmlElement(required = true),但不是我们缺少使用核心Integer类型的优点.

我想将属性公开为Integer,所以如果用户没有设置属性我会得到null,同时我希望WSDL公开该属性是必需的,这样用户只需看看就知道它是必需的WSDL.

web-services cxf

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

标签 统计

java ×2

cxf ×1

jackson ×1

jdbc ×1

sql ×1

web-services ×1