Calendar cal;
String sql = "INSERT INTO ttable (dt) values (?);"
//dt is a dateTime field in ttable
PreparedStatement stmt = connection.prepareStatement(sql);
stmt = setDate(1,cal); //not working
stmt.execute();
stmt.close();
Run Code Online (Sandbox Code Playgroud)
我想将cal转换为Date类型以插入表中.
我需要一些澄清.我有一个使用Crystal Reports的Reportwriter dll.它是用VB6编写的.我必须将这个dll添加到我的asp.net项目中,它创建一个interop dll.
根据我的理解,interop dll作为中介,以便我的.net代码可以与Reportwriter dll通信.
那么我注册interop dll还是注册原始dll?
我想执行一个简单的本机查询,但它不起作用:
@Autowired
private EntityManager em;
Query q = em.createNativeQuery("SELECT count(*) FROM mytable where username = :username");
em.setProperty("username", "test");
(int) q.getSingleResult();
Run Code Online (Sandbox Code Playgroud)
为什么我得到这个例外?
org.hibernate.QueryException: Not all named parameters have been set: [username]
Run Code Online (Sandbox Code Playgroud) 是否有可能以某种方式拦截日志记录(SLF4J + logback)并InputStream
通过JUnit测试用例获取(或其他可读的内容)......?
请考虑以下代码向客户端发送HTTP 201"创建"响应:
String url = "/app/things?id=42"; // example
response.setStatus(HttpServletResponse.SC_CREATED);
response.setContentType("text/plain");
response.setHeader("Location", url);
response.getWriter().print(url);
Run Code Online (Sandbox Code Playgroud)
它通知客户端创建了一个新的"东西",并且可以在URL上找到它/app/things?id=42
.问题是这个URL是相对的.这对于JSP来说是完美的,可以写成如下:
<img src="<c:url value="/things?id=42" />" />
Run Code Online (Sandbox Code Playgroud)
哪个会产生以下HTML:
<img src="/app/things?id=42" />
Run Code Online (Sandbox Code Playgroud)
这是我们想要的网络应用程序.
但我不相信这是我们想要的201响应位置标题.HTTP规范声明:
14.30位置
Location response-header字段用于将收件人重定向到Request-URI以外的位置,以完成请求或标识新资源.对于201(已创建)响应,Location是请求创建的新资源的位置.对于3xx响应,位置应该应该指示服务器自动重定向到资源的首选URI.字段值由单个绝对URI组成.
Run Code Online (Sandbox Code Playgroud)Location = "Location" ":" absoluteURI
一个例子是:
Run Code Online (Sandbox Code Playgroud)Location: http://www.w3.org/pub/WWW/People.html
我的问题是如何以适当的方式将servlet的相对URL转换为Location头的绝对URL.
我不相信使用:
request.getServerName() + ":" + request.getServerPort() + url;
Run Code Online (Sandbox Code Playgroud)
是正确的解决方案.应该有一个生成正确输出的标准方法(以便可以应用URL重写等).我不想创建一个hack.
我有一个如下所示的课程
public class MyClass {
private String val1;
private String val2;
private Map<String,Object> context;
// Appropriate accessors removed for brevity.
...
}
Run Code Online (Sandbox Code Playgroud)
我希望能够与杰克逊一起往返于JSON并返回.我可以序列化上面的对象并收到以下输出:
{
"val1": "foo",
"val2": "bar",
"context": {
"key1": "enumValue1",
"key2": "stringValue1",
"key3": 3.0
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,由于序列化映射中的值没有任何类型信息,因此它们不会正确反序列化.例如,在上面的示例中,enumValue1应该反序列化为枚举值,而是反序列化为String.我已经看到了基于各种类型的基于什么类型的示例,但在我的场景中,我不知道类型是什么(它们将是用户生成的对象,我不会事先知道)所以我需要成为能够使用键值对序列化类型信息.我怎么能和杰克逊一起完成这个?
为了记录,我使用Jackson版本2.4.2.我用来测试往返的代码如下:
@Test
@SuppressWarnings("unchecked")
public void testJsonSerialization() throws Exception {
// Get test object to serialize
T serializationValue = getSerializationValue();
// Serialize test object
String json = mapper.writeValueAsString(serializationValue);
// Test that object was serialized as expected
assertJson(json);
// Deserialize to complete round …
Run Code Online (Sandbox Code Playgroud) Maven有时候有点过头了......我创建了一个库,它对slf4j和log4j有可选的依赖.通过可选,我的意思是:
目前,我已将该依赖标记为"可选"和"已提供":
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<type>jar</type>
<scope>provided</scope>
<optional>true</optional>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但是我的一些用户报告了问题,因为他们不需要log4/slf4j.我的依赖是否正确?不幸的是,我发现官方文档有点过于抽象,无法理解这个问题.
如果我在Gerrit中有一个更改的多个补丁集版本,似乎我只能提交最新的补丁集版本(因为只有那个有必要的按钮).是否有一种简单的方法来改为使用Gerrit实例上的我的Web浏览器提交相同更改的旧补丁集版本之一?
我知道我可以从我的git客户端获取所需的补丁集版本并将其作为另一个新的补丁集版本推送到顶部,但我想避免在审查和讨论中多次使用相同的补丁集版本.
如何,
为git diff --word-diff 添加单词分隔符?
例如,我希望差异识别出来
function(A,B,C) -> function(A, B, C)
Run Code Online (Sandbox Code Playgroud)
只添加了空格而不是替换整行.
我正在尝试在PhantomJS中打开一个需要HTTP身份验证的网页.我的脚本基于loadspeed.js示例:
var page = require('webpage').create(),
t, address;
page.settings.userName = "user";
page.settings.password = "password";
if (phantom.args.length === 0) {
console.log('Usage: loadspeed.js <some URL>');
phantom.exit();
} else {
t = Date.now();
address = phantom.args[0];
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
} else {
t = Date.now() - t;
console.log('Loading time ' + t + ' msec');
page.render('page.jpg');
}
phantom.exit();
});
}
Run Code Online (Sandbox Code Playgroud)
我可以从渲染的page.jpg看到我每次都得到401.我还使用Wireshark跟踪HTTP会话,这表明在给定URL的GET请求中没有发送认证头.
我在这做错了什么?我刚刚开始使用PhantomJS,但我整晚都在寻找并且没有得到太多...