Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

15
Java编程-SQL语句应存储在哪里?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 兼容JDBC的应用程序应在哪里存储其SQL语句,为什么? 到目前为止,我设法确定了这些选项: 硬编码在业务对象中 嵌入在SQLJ子句中 封装在单独的类中,例如 数据访问对象 驱动元数据(将对象模式与数据模式分离-在元数据中描述它们之间的映射) 外部文件(例如,属性或资源文件) 存储过程 各自的“优点”和“缺点”是什么? 应该将SQL代码视为“代码”还是“元数据”? 存储过程应该仅用于性能优化还是它们是数据库结构的合法抽象? 性能是决定的关键因素吗?什么厂商锁定? 更好的是松耦合还是紧耦合,为什么? 编辑:谢谢大家的答案–以下是摘要: 元数据驱动,即对象关系映射(ORM) 优点: 非常抽象-无需更改模型即可切换DB服务器 广泛传播-实际上是一个标准 减少所需的SQL数量 可以将SQL存储在资源文件中 性能(通常)是可以接受的 元数据驱动的方法 (数据库)供应商独立性 缺点: 隐藏SQL和真正的开发人员意图 DBA难以审核/更改SQL 奇数情况下可能仍需要SQL 可以强制使用专有查询语言,例如HQL 不适合进行优化(抽象) 可能缺乏参照完整性 缺乏SQL知识或对数据库中的代码缺乏关注的替代品 永远无法达到本机数据库的性能(即使相差无几) 模型代码与数据库模型紧密结合 硬编码/封装在DAO层中 优点: SQL保留在访问数据的对象(封装)中 SQL易于编写(开发速度) 需要更改时,SQL很容易跟踪 简单的解决方案(没有凌乱的架构) 缺点: DBA无法检查/更改SQL SQL可能成为特定于DB的 SQL可能变得难以维护 存储过程 优点: …
107 java  sql 

13
Spring Boot默认的H2 jdbc连接(和H2控制台)
当我未在application.properties中指定任何内容并以mvn spring:run开头时,我只是想查看spring-boot创建的嵌入式H2数据库的H2数据库内容。我可以看到休眠的JPA正在创建表,但是如果我尝试通过数据库下面的URL访问h2控制台,则该表没有表。 http://localhost:8080/console/ 我看到这样的建议: 查看Spring启动的嵌入式H2数据库的内容 但是我不知道在春季启动时将建议的XML放在哪里,即使我这样做了,我也不希望在配置外部数据库时h2console可用,因此我更有可能需要处理此问题。使用某种条件代码(或者在最理想的情况下(仅当激活Maven配置文件时我仅包含H2)才允许spring自动处理它)。 是否有人有示例代码显示如何使H2控制台在启动时工作(以及找出spring使用的jdbc连接字符串的方法)?
107 java  spring  jpa  h2  spring-boot 

10
最好的Java混淆器?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我正在开发安全软件,并希望混淆我的Java代码,因此将无法进行反向工程。什么是最可靠的Java混淆器?
107 java  obfuscation 

7
Spring Boot添加Http请求拦截器
在Spring Boot应用程序中添加HttpRequest拦截器的正确方法是什么?我想做的是记录每个HTTP请求的请求和响应。 Spring Boot文档完全没有涵盖该主题。(http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/) 我发现了一些有关如何对较早版本的spring执行相同操作的Web示例,但这些示例与applicationcontext.xml一起使用。请帮忙。

8
Spring Cache @Cacheable-从同一个bean的另一个方法调用时不起作用
从同一bean的另一个方法调用缓存的方法时,Spring缓存不起作用。 这是一个清楚地说明我的问题的示例。 组态: <cache:annotation-driven cache-manager="myCacheManager" /> <bean id="myCacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> <property name="cacheManager" ref="myCache" /> </bean> <!-- Ehcache library setup --> <bean id="myCache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:shared="true"> <property name="configLocation" value="classpath:ehcache.xml"></property> </bean> <cache name="employeeData" maxElementsInMemory="100"/> 缓存的服务: @Named("aService") public class AService { @Cacheable("employeeData") public List<EmployeeData> getEmployeeData(Date date){ ..println("Cache is not being used"); ... } public List<EmployeeEnrichedData> …
107 java  spring  caching  ehcache 

4
为什么有OkHttp时为什么要使用Retrofit
使用OkHttp,我们可以发出HTTP请求,然后从服务器获取响应 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(url) .build(); Response response = client.newCall(request).execute(); 然后使用Gson lib将响应转换为我们需要的对象。 这是来自Square / OkHttp文档: 它的请求/响应API具有流畅的构建器和不变性。它支持同步阻塞调用和带回调的异步调用 我从stackOverFlow阅读 如果可用,翻新将自动使用OkHTTP 。 所以我的问题是Retrofit到底要做什么? OkHttp无法做到的Retrofit可以做什么? 我认为OkHttp和Gson解决了请求API问题,那么Retrofit为我们解决了什么问题?
107 java  android  retrofit  okhttp 

16
如何解决无法加载身份验证插件“ caching_sha2_password”的问题
在Eclipse中,当我启动我的应用程序时,我得到了-无法发现要使用的方言。java.sql.SQLException:无法加载身份验证插件“ caching_sha2_password”。 在java.sql.SQLException:无法加载身份验证插件“ caching_sha2_password”。在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:864)在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:864)在com.mysql.jdbc.MysqlIO.proceedHandshakeWithPluggableAuthentication(MysqlIO。 com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1226)处com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2191)处com.mysql.jdbc.ConnectionImpl处的Java:1746)。 com.mysql.jdbc上的connectOneTryOnly(ConnectionImpl.java:2222)com.mysql.jdbc上的ConnectionImpl.createNewIO(ConnectionImpl.java:2017)com.mysql.jdbc上的ConnectionImpl。(ConnectionImpl.java:779) .JDBC4Connection。(JDBC4Connection.java:47),位于sun.reflect.NativeConstructorAccessorImpl。

8
如何在Ubuntu下安装JDK 11?
因此Java 11已经发布。有人知道如何从命令行安装它(Oracle的OpenJDK)吗? 我希望看到与Oracle Java 10相似的内容: sudo add-apt-repository ppa:linuxuprising/java sudo apt-get update sudo apt-get install oracle-java10-installer PS在类似问题中建议的指导: sudo apt-get install openjdk-11-jdk 不起作用。
107 java  ubuntu  java-11 

3
如何使用ObjectMapper在没有默认构造函数的情况下反序列化不可变对象?
我想使用com.fasterxml.jackson.databind.ObjectMapper序列化和反序列化不可变对象。 不可变类如下所示(只有3个内部属性,获取器和构造函数): public final class ImportResultItemImpl implements ImportResultItem { private final ImportResultItemType resultType; private final String message; private final String name; public ImportResultItemImpl(String name, ImportResultItemType resultType, String message) { super(); this.resultType = resultType; this.message = message; this.name = name; } public ImportResultItemImpl(String name, ImportResultItemType resultType) { super(); this.resultType = resultType; …
106 java  json 

6
Calendar.getInstance(TimeZone.getTimeZone(“ UTC”))没有返回UTC时间
我真的对Calendar.getInstance(TimeZone.getTimeZone("UTC"))方法调用的结果感到困惑,因为它返回了IST时间。 这是我使用的代码 Calendar cal_Two = Calendar.getInstance(TimeZone.getTimeZone("UTC")); System.out.println(cal_Two.getTime()); 我得到的回应是: Sat Jan 25 15:44:18 IST 2014 所以我尝试将默认的TimeZone更改为UTC,然后检查了一下,然后工作正常 Calendar cal_Two = Calendar.getInstance(TimeZone.getTimeZone("UTC")); System.out.println(cal_Two.getTime()); TimeZone tz = TimeZone.getDefault() ; TimeZone.setDefault(TimeZone.getTimeZone("UTC")); Calendar cal_Three = Calendar.getInstance(); System.out.println(cal_Three.getTime()); TimeZone.setDefault(tz); 结果: Sat Jan 25 16:09:11 IST 2014 Sat Jan 25 10:39:11 UTC 2014 我在这里想念什么吗?
106 java 

9
yield()的主要用途是什么,它与join()和interrupt()有何区别?
我yield()对Java 中方法的使用有些困惑,尤其是在下面的示例代码中。我也读过yield()是“用来防止线程执行的”。 我的问题是: 我相信下面的代码在使用yield()和不使用时都会产生相同的输出。这样对吗? 实际上,的主要用途是yield()什么? 在哪些方面yield()从不同join()和interrupt()方法? 代码示例: public class MyRunnable implements Runnable { public static void main(String[] args) { Thread t = new Thread(new MyRunnable()); t.start(); for(int i=0; i<5; i++) { System.out.println("Inside main"); } } public void run() { for(int i=0; i<5; i++) { System.out.println("Inside run"); Thread.yield(); } } } …


5
使用Volley和不使用HttpEntity的工作POST多部分请求
这并不是一个真正的问题,但是,我想在这里共享我的一些工作代码,以供您在需要时参考。 众所周知,HttpEntity自API22起已弃用该方法,并自API23起将其完全删除。目前,我们无法再在Android Developer上访问HttpEntity Reference(404)。因此,以下是我在带有Volley且没有HttpEntity的POST Multipart Request中工作的示例代码。工作正常,已通过测试Asp.Net Web API。当然,代码可能只是发布两个已存在的可绘制文件的基本示例,也不是所有情况下的最佳解决方案,而且调整也不佳。 MultipartActivity.java: package com.example.multipartvolley; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; import com.android.volley.NetworkResponse; import com.android.volley.Response; import com.android.volley.VolleyError; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; public class MultipartActivity extends Activity …

13
如何使用Java获取图像的高度和宽度?
除了使用ImageIO.read来获取图像的高度和宽度外,还有其他方法吗? 因为我遇到了锁定线程的问题。 at com.sun.medialib.codec.jpeg.Decoder.njpeg_decode(Native Method) at com.sun.medialib.codec.jpeg.Decoder.decode(Decoder.java:87) at com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader.decode(CLibJPEGImageReader.java:73) - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader) at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.getImage(CLibImageReader.java:320) - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader) at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.read(CLibImageReader.java:384) - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader) at javax.imageio.ImageIO.read(ImageIO.java:1400) at javax.imageio.ImageIO.read(ImageIO.java:1322) 此错误仅在Sun应用服务器上发生,因此我怀疑这是Sun错误。

5
如何从jstl中的foreach循环获取索引值
我在如下request对象中设置了一个值, String[] categoriesList=null; categoriesList = engine.getCategoryNamesArray(); request.setAttribute("categoriesList", categoriesList ); 这就是我在jsp页面中进行迭代的方式 <% if(request.getAttribute("categoriesList") != null) { %> <c:forEach var="categoryName" items="${categoriesList}"> <li><a onclick="getCategoryIndex()" href="#">${categoryName}</a></li> </c:forEach> <% }%> 如何获取每个元素的索引并将其传递给JavaScript函数onclick="getCategoryIndex()"。
106 java  jsp  for-loop  foreach  jstl 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.