Oracle JDBC UCP和Java

我想知道是否有人可以对这个话题有所了解,因为我已经绞尽脑汁好几天了,并且不太明白为什么这不起作用。 我有三个main类, RetrieveDBVersion , GetOracleConnection我一直在用oracle JDBC,UCP和Java 1.7进行一些测试。 根据Oracle文档,如果我使用连接池,一旦关闭连接,连接将返回到池,使其无效并将其设置为null 请参阅此处 。 所以我决定给它一个旋转,看看它是否会像文档说的那样表现。 在我的主应用程序中,我有一个简单的循环,通过调用RetrieveDBVersion 200次连接。 RetrieveDBVersion只是执行查询并返回驱动程序版本。 我的循环工作正常,直到我达到68的幻数,然后我收到一个错误 java.sql.SQLException: Exception occurred while getting connection: oracle.ucp.UniversalConnectionPoolException: Cannot get Connection from Datasource: java.sql.SQLException: Listener refused the connection with the following error: ORA-12516, TNS:listener could not find available handler with matching protocol stack 这些是3种方法的细节。 这些方法不在服务器环境中。 他们只是调用本地oracle express数据库,我在桌面上运行它们。 为什么我会一直收到这个错误? 如果我将连接返回池中? 主要 import […]

基于Java的独立应用程序

我正在为使用Java Swing的客户端和使用MySQL的jdbc开发一个独立的应用程序。 我使用MySQL作为数据库。我想知道客户端如何安装MySQL,有没有办法让客户端可以在他的机器上安装MySQL,或者我可以分发MySQL设置。客户端只需要运行软件并且不想去任何安装过程。 这有什么办法?

有没有办法让Java中的普通数组不可变?

用Google搜索,找到了大量的代码。 但是他们中的任何一个都给了我想要的东西。 我想制作一个普通的数组永恒。 我试过这个: import java.util.ArrayList; import java.util.Collections; import java.util.List; public class test { public static void main(String[] args) { final Integer array[]; List temp = new ArrayList(); temp.add(Integer.valueOf(0)); temp.add(Integer.valueOf(2)); temp.add(Integer.valueOf(3)); temp.add(Integer.valueOf(4)); List immutable = Collections.unmodifiableList(temp); array = immutable.toArray(new Integer[immutable.size()]); for(int i=0; i<array.length; i++) System.out.println(array[i]); array[0] = 5; for(int i=0; i<array.length; i++) System.out.println(array[i]); } } […]

Java将int隐式转换为byte

我即将开始处理需要读取字节和创建字符串的事情。 正在读取的字节代表UTF-16字符串。 所以只是为了测试我想要将UTF-16编码的简单字节数组转换为字符串。 数组中的前2个字节必须表示字节序,因此必须是0xff 0xfe或0xfe 0xff。 所以我尝试按如下方式创建我的字节数组: byte[] bytes = new byte[] {0xff, 0xfe, 0x52, 0x00, 0x6F, 0x00}; 但是我收到一个错误,因为0xFF和0xFE太大而无法放入一个字节(因为字节是用Java签名的)。 更准确地说,错误是int无法转换为字节。 我知道我可以使用强制转换显式地从int转换为byte并获得所需的结果,但这不是我的问题。 为了尝试一些东西,我创建了一个String并调用了getBytes(“UTF-16”)然后打印了数组中的每个字节。 输出有点令人困惑,因为前两个字节是0xFFFFFFFE 0xFFFFFFFF,后跟0x00 0x52 0x00 0x6F。 (显然这里的字节顺序与我上面尝试创建的不同,但这并不重要)。 使用此输出我决定尝试以相同的方式创建我的字节数组: byte[] bytes = new byte[] {0xffffffff, 0xfffffffe, 0x52, 0x00, 0x6F, 0x00}; 奇怪的是,它工作得很好。 所以我的问题是,为什么Java允许0xFFFFFF80或更大的整数值自动转换为没有显式强制转换的字节,但任何等于或大于0x80的东西都需要显式强制转换?

如何使用Selenium(Java)在浏览器中禁用JavaScript?

在我的function自动化中,我需要在浏览器中禁用JavaScript并运行流程。 如何禁用JavaScript? 试过firefox和Chrome的DesiredCapabilities。 DesiredCapabilities dc = new DesiredCapabilities(); dc.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, false) 和 DesiredCapabilities dc = new DesiredCapabilities(); dc.setJavascriptEnabled(false); 对于firefox,尝试过1)为firefox设置配置文件 2)添加附加组件 – noScript.xpi 3)profile.setPreference(“javascript.enabled”,false); 4)通过UI,尝试将标志 – “about:config”中的“javascript.enabled”更改为false。 在这里,打开firefox并给出“about:config”警告 – “这可能会使您的保修失效!”。 有一个按钮 – “我会小心的,我保证!” id – warningButton。 应单击此按钮以继续。 要单击此按钮,请使用driver.findElement(By.id(“warningButton”))。click(); 但它不起作用。 以上所有选项均无效。 任何建议都会有所帮助。

Float vs Double

是否存在两个浮点值之间的比较( equals() )如果将它们比较为DOUBLE则返回false但如果将它们作为FLOAT进行比较则返回true情况? 作为我的小组项目的一部分,我正在编写一些程序来比较任何给定类型的两个数值。 我必须处理4种类型: double , float , int和long 。 所以我想将double和float成一个函数,也就是说,我只是将任何float为double并进行比较。 这会导致任何不正确的结果吗? 谢谢。

找不到适合ArrayAdapter的构造函数(MainListActivity.GetBlogPostsTask,int,String )

我在运行此代码时遇到此错误,我正在关注树屋构建一个博客阅读器Android应用程序 ,现在我收到此错误 错误:(120,52)错误:没有为ArrayAdapter找到合适的构造函数(MainListActivity.GetBlogPostsTask,int,String [])构造函数ArrayAdapter.ArrayAdapter(Context,int,int)不适用(参数不匹配; MainListActivity.GetBlogPostsTask无法转换到Context)构造函数ArrayAdapter.ArrayAdapter(Context,int,String [])不适用(参数不匹配; MainListActivity.GetBlogPostsTask不能转换为Context)构造函数ArrayAdapter.ArrayAdapter(Context,int,List)不适用(参数不匹配; MainListActivity.GetBlogPostsTask无法转换为Context) 现在我在这段代码中遇到错误 private void udpateList() { if(blogData == null){ // TODO: handle error }else{ try { JSONArray jsonPosts = blogData.getJSONArray(“posts”); blogPostTitles = new String[jsonPosts.length()]; for (int i = 0; i < jsonPosts.length(); i++){ JSONObject post = jsonPosts.getJSONObject(i); String title = post.getString("title"); title = Html.fromHtml(title).toString(); blogPostTitles[i] = title; } […]

Java访问修饰符的可访问性范围

Java具有私有,受保护和公共访问修饰符。 你能解释一下这些修饰语的可访问性范围吗? 如何访问其他包中的受保护成员?

`getExternalStorageDirectory()`问题 – Android

我正在编写一个Android应用程序,它需要一些图片,并希望将它们全部保存在与我的应用程序相关的唯一目录中。 此目录应该可以从标准库中访问,以便用户以后可以(当应用程序不一定运行时)检查拍摄的图片。 我的问题是,每个不同的手机供应商,具有不同的Android版本,具有不同的图库路径。作为一个例子: Environment.getExternalStorageDirectory() + Environment.DIRECTORY_PICTURES +”/myFolder” 将运行Samsung Galaxy Nexus运行android 4.1.1 ,并在Asus Transformer Pad运行android 4.0.3 ,但不在HTC Desire运行android 2.3.5 。 这将导致我的应用程序在尝试在指定路径中保存新目录时崩溃,如下所述: boolean success = false; myFolder = new File( Environment.getExternalStorageDirectory() + Environment.DIRECTORY_PICTURES + “/myFolder” ); if( myFolder.exists() ){ //do nothing }else{ success = dvaFolder.mkdir(); if( success ){ // Do something on success /* * folder has […]

Java – CardLayout show()IllegalArgumentException

我有一个CardLayout show方法的问题 所以我宣布我的CardLayout并将其应用到我的JPanel CardLayout cl = new CardLayout(); panel.setLayout(cl); 然后我在CardLayout中添加了2个面板 cl.addLayoutComponent(panel, “menuScreen”); cl.addLayoutComponent(panel1, “gameScreen”); 然后我有一个JButton,当点击时,我显示gameScreen public void mouseClicked(MouseEvent e) { if(e.getSource() == (startGame)) scenechange.show(panel,”gameScreen”); } 唯一的问题是它没有进入我的gameScreen。 它给了我一个llegalArgumentException。 它说“线程中的exception”AWT-EventQueue-0“java.lang.IllegalArgumentException:CardLayout的错误父级”。 提前致谢