小编Ern*_*kov的帖子

BeanPropertySqlParameterSource的模拟,可以处理公共字段

我有一个简单的模型,我希望使用Spring JDBCTemplate在MySQL中保存这些实例.我使用DAO,使用简单的sql(insert into user(id, email...) value (:id, :email...))保存模型对象.是否有任何框架可以从模型中提取参数(当模型只是具有公共字段的POJO时).所以,我需要类似于Spring的东西BeanPropertySqlParameterSource,但是能够使用公共字段而不是属性.

模型类的示例:

public class User {
    public int id;
    public String email;
    public String login;
    public String password;
}
Run Code Online (Sandbox Code Playgroud)

我知道扩展AbstractSqlParameterSource可以解决我的问题,但我希望找到现有的框架.

UPD

实施基于AbstractSqlParameterSource:

public class PublicFieldsSqlParameterSource extends AbstractSqlParameterSource {

    Map<String, Object> props = new HashMap<>();

    public PublicFieldsSqlParameterSource(Object object) {
        Field[] fields = object.getClass().getFields();
        for (Field field : fields) {
            String name = field.getName();
            try {
                Object value = field.get(object);
                props.put(name, value);
            } catch (IllegalAccessException ignored) { …
Run Code Online (Sandbox Code Playgroud)

java spring-jdbc

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

如何在CloudFormation模板中获取Glue开发端点URL?

我正在尝试编写一个创建以下内容的CloudFormation模板:

  • 胶水发展终点(类型AWS::Glue::DevEndpoint)和
  • Zeppelin笔记本连接到已创建的端点的EC2实例。

第二个资源需要端点URL。在输出中AWS::Glue::DevEndpoint提供端点名称,但尚不清楚如何获取URL。

到目前为止,我发现的唯一解决方案是引入aws glue get-dev-endpoint命令并在实例初始化过程的某个时刻解析其输出。

amazon-web-services aws-cloudformation aws-glue

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

错误 1526 (HY000):表没有值 1426566990 的分区

我的 mysql 服务器无法分区:

mysql服务器版本是:5.1.71-log

操作系统:CentOS 6.5 x64

mysql>show create table 
| history | CREATE TABLE `history` (
`itemid` bigint(20) unsigned NOT NULL,
`clock` int(11) NOT NULL DEFAULT '0',
`value` double(16,4) NOT NULL DEFAULT '0.0000',
`ns` int(11) NOT NULL DEFAULT '0',
KEY `history_1` (`itemid`,`clock`) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=latin1 |


mysql>select * from history limit 11;
+--------+------------+--------------+-----------+
| itemid | clock      | value        | ns        |
+--------+------------+--------------+-----------+
|  35210 | 1426566411 |  189626.1400 | 856563617 |
|  35211 | 1426566414 …
Run Code Online (Sandbox Code Playgroud)

mysql

4
推荐指数
1
解决办法
3万
查看次数

VisualVM 无​​法连接到除 1099 之外的任何端口

我有一个远程 jvm 应用程序在由 kubernetes 管理的 docker 容器内运行:

java -jar /path/to/app.jar
  -Dcom.sun.management.jmxremote  
  -Dcom.sun.management.jmxremote.authenticate=false
  -Dcom.sun.management.jmxremote.ssl=false
  -Dcom.sun.management.jmxremote.local.only=false
  -Dcom.sun.management.jmxremote.port=1099
  -Dcom.sun.management.jmxremote.rmi.port=1099
  -Djava.rmi.server.hostname=127.0.0.1 
Run Code Online (Sandbox Code Playgroud)

当我尝试使用端口转发和 VisualVM 进行调试时,它仅在我在本地计算机上使用端口 1099 时才有效。端口 1098、10900 或任何其他端口均不起作用。这适用于 VisualVM kubectl port-forward <pod-name> 1099:1099:. 这个没有: kubectl port-forward <pod-name> 1098:1099

我在 VisualVM 中使用“添加 JMX 连接”选项,连接到localhost:1099localhost:1098. 前者有效,后者无效。

为什么我不能在 VisualVM 中使用非 1099 端口?

UPD 我相信这个问题与 VisualVM 有关,因为无论我选择什么本地端口,端口转发似乎都能正常工作:

$ kubectl port-forward <pod> 1098:1099
Forwarding from 127.0.0.1:1098 -> 1099
Forwarding from [::1]:1098 -> 1099
Handling connection for 1098
Handling connection for 1098
Run Code Online (Sandbox Code Playgroud)

jvm visualvm docker kubernetes

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

如何使用fasterxml jackson更改xml类名?

我试图弄清楚如何使用jackson fastxml更改根节点名称。

例如:

public class Car {
    @JsonProperty("engine-type") 
    String engineType = "v8";
}

public class Ford extends Car {
}

Ford car = new Ford();
ObjectMapper xmlMapper = new XmlMapper();
System.out.println(xmlMapper.writeValueAsString(this));
Run Code Online (Sandbox Code Playgroud)

结果是:

<Ford><engine-type>v8</engine-type></Ford>
Run Code Online (Sandbox Code Playgroud)

这就是我要的:

  1. 要命名为car的根节点。
  2. 我希望Car在xml中为小写字母:

例如:

<car><engine-type>v8</engine-type></car>
Run Code Online (Sandbox Code Playgroud)

谢谢

java xml json jackson fasterxml

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