小编Yan*_*ski的帖子

JDBC结果集检索LocalDateTime

我运行一个简单的查询来从MySQL数据库中检索一行.我得到了ResultSet,我需要从中检索一个LocalDateTime对象.我的数据库表.

CREATE TABLE `some_entity` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `title` varchar(45) NOT NULL,
  `text` varchar(255) DEFAULT NULL,
  `created_date_time` datetime NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id_UNIQUE` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)

我需要通过id检索一些实体.

String SELECT = "SELECT ID, TITLE, TEXT, CREATED_DATE_TIME FROM some_entity WHERE some_entity.id = ?";
PreparedStatement selectPreparedStatement = connection.prepareStatement(SELECT);
try {
    selectPreparedStatement.setLong(1, id);
    ResultSet resultSet = selectPreparedStatement.executeQuery();
    if (resultSet.next()) {
        Long foundId = resultSet.getLong(1);
        String title = resultSet.getString(2);
        String text = resultSet.getString(3);
        LocalDateTime createdDateTime …
Run Code Online (Sandbox Code Playgroud)

java mysql jdbc java-time

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

Windows计算机上的默认Java

我有一台Windows 10 x64计算机。我有Open JDK10。我JAVA_HOME指向Open JDK 10的位置。我的Path变量有%JAVA_HOME%/bin;一部分。

然后我安装了Java8。https ://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Java安装程序更改Path

 C:\Users\user>set Path 
 Path=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;OTHER_STUFF_WITHOUT_JAVA
Run Code Online (Sandbox Code Playgroud)

现在在命令行中java -version指向Java 8。

 C:\Users\user>java -version
 java version "1.8.0_202"
 Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
 Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)
Run Code Online (Sandbox Code Playgroud)

但是JAVA_HOME仍然指向Open JDK 10。

C:\Users\user>set java_home
JAVA_HOME=C:\Java\jdk\jdk-10.0.2
Run Code Online (Sandbox Code Playgroud)

我的目标是将Open JDK-10作为默认Java。

这不是Windows计算机上的默认Java路径的重复项, 因为没有答案。

java java-8 windows-10

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

模式验证:缺少表[hibernate_sequences]

我使用Spring 4.3.3.RELEASE,Hibernate 5.2.2.Final,数据库是MySQL.我想尝试策略= GenerationType.TABLE.据我所知,GenerationType.SEQUENCE 我需要数据库中的序列来生成id.

这是我的实体.

@Entity(name = CommentTable.TABLE_NAME)
public class Comment {

    private Integer id;
    private String title;
    private String message;
    private LocalDateTime createdDateTime;
    private Issue issue;


   public Comment() {
   }

   @Id
   @GeneratedValue(strategy = GenerationType.TABLE)
   @Column(name = CommentTable.COLUMN_ID, unique = true, nullable = false)
   public Integer getId() {
       return id;
   }

   public void setId(Integer id) {
       this.id = id;
   }
//Other getters and setters.
}
Run Code Online (Sandbox Code Playgroud)

Spring注释配置

@Configuration
@ComponentScan("com.ita.training.otm") 
@ImportResource("classpath:/config.xml") // XML with DataSource bean
@EnableTransactionManagement
public …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa

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

在lambda表达式中使用参数调用构造函数

我有员工类:

public class Employee {

    private Long id;
    private String name;
    private String externalId;

    public Employee(Long id, String name, String externalId) {
        this.id = id;
        this.name = name;
        this.externalId = externalId;
    }

    //getters, setter
}
Run Code Online (Sandbox Code Playgroud)

返回员工的员工服务(可以为NULL).

private void performEmployeeProcessing() {
    Long employeeId = 2L;
    Object o = Optional.ofNullable(employeeService.getById(employeeId))
        .orElseGet(Employee::new, 1L, "", "");

    System.out.println(o);
}
Run Code Online (Sandbox Code Playgroud)

它说编译错误

Employee :: new,1L,"",""
无法解析构造函数.

java lambda

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

Wildfly:管理用户与应用程序用户

我下载了Wildfly(wildfly-13.0.0.Final),然后对其进行配置。我从standalone.batJBOSS_HOME目录的bin文件夹开始(我使用Windows平台)。

我转到管理控制台:localhost:8080->管理控制台。我看到这个

您的WildFly Application Server正在运行。但是,您尚未添加任何用户来访问管理控制台。

要添加新用户,请在WildFly安装的bin文件夹中执行add-user.bat脚本,然后输入所需的信息。

我跑了add-user.bat,它问我要添加什么样的用户。我需要一个用户具有部署,重新部署应用程序的权限。例如,对于Apache Tomcat,我可以配置tomcat-users.xml文件并在其中添加用户(/sf/answers/92941131/),因此当我以该用户身份登录控制台时,可以部署应用程序。

wildfly

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

反向地理编码多个节点

我的问题:需要多个节点反向地理编码.我使用nominatim API

http://nominatim.openstreetmap.org/reverse?format=json&lat=53.9135678&lon=27.5549758&zoom=18&addressdetails=1&accept-language=ru

我有很多鬃毛节点(约800 000),我想反转所有这些节点的地理编码,以便拥有这样的数据库

节点| 城市| 区| 街道| lat | LON

"lat"和"lon"我已经有了,但是我的大多数节点都没有街道,城市,区域,我想拥有它们.

我提出的一个解决方案如下.我可以发出大约1000个请求然后我的ip被阻止,在一个小时内我可以再次发出1000个请求.我也使用代理,从而从不同的IP地址发出请求.所有这些同时发生,所以我总共可以每天更新30 000 - 40 000个节点.如您所见,要更新我的节点,我需要很多天.

这种解决方案有一些缺点:速度,时间和重载名义服务器.

那么更好的想法是什么?也可以下载已经反转地理编码的特定多边形(具有max lat,lon,min lat,lon的区域)的节点.在这种情况下,我不需要制作多个地理编码请求.

如果您有任何想法,我可以使用其他API,谷歌,Yandex,无论如何,请告诉我.

最好的祝福

openstreetmap reverse-geocoding nominatim

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

找到arrayList中值的问题

我一直在获取The type of the expression must be an array type but it resolved to ArrayList<Double>arrayList从我的Test类中提取数字.我做了if来确定arrayList是否有一个偶数的值或奇数,因为我可以使用两种不同的方法来确定中位数.但我无法使中位公式起作用.

public class Data {

private ArrayList<Double> sets;

public Data(double[] set) {
    this.sets = new ArrayList<Double>();
    for (double i : set) {
        this.sets.add(i);
    }
}

public double getMedian(){
    Collections.sort(sets);

    double middle = sets.size()/2;
        if (sets.size()%2 == 1) {
           middle = (sets[sets.size()/2] + sets[sets.size()/2 - 1])/2;
        } else {
            middle = sets[sets.size() / 2];
        }
      return middle;
}
Run Code Online (Sandbox Code Playgroud)

java arrays oop arraylist

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