Tag: oracle11g

当键入One Jtextfield时,将数据从数据库提取到Jtextfield

嗨大家我有一个连接到oracle数据库的Swing应用程序,我想要它,这样一旦我在JTextField中键入一个值,JFrame上的其他JTextfields都会加载来自数据库的后续数据,但我似乎没有实现这个。 我已经尝试过以下代码,但它什么也没找到。 txtNo.addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent ke) { Connection conn = null; try{ Class.forName(“oracle.jdbc.driver.OracleDriver”); conn = DriverManager.getConnection(“jdbc:oracle:thin:@localhost:1521:XE”, “Username”, “Password”); Statement st = conn.createStatement(); String load = “Select * from Store_info_table where PART_NUMBER = ‘” + txtNo.getText() + “‘”; ResultSet rs = st.executeQuery(load); while(rs.next()){ txtName.setText(rs.getString(“SPARE_DESC”)); } }catch(Exception ae){ } } });

将行提取的Oracle大小设置得更高会使我的应用程序更慢?

正如此处详述并在 此处确认的那样,Oracle在通过JDBC查询数据时返回的默认行数是10.我正在开发一个必须读取和比较数据库中大量数据的应用程序。 我认为如果我们只是将defaultRowPrefetch增加到类似于1000的东西,那么我们的应用程序肯定会更快。 事实certificate,它的表现较慢 ,约为20%。 然后,我们决定从10开始慢慢增加数字,看看它的表现如何。 通过将它设置在100到200之间我们已经看到了大约10%的增长。但是,我绝不会猜到,将它设置得更高会使我们的应用程序执行得更慢。 任何想法为什么会这样? 谢谢! 编辑: 为了澄清,我使用的是Oracle 11g R2和Java 6。 编辑2: 好的,我想重申一下我的问题,因为从下面的答案来看,我并没有正确表达自己: 如果我设置更高的提取大小,我的应用程序执行速度有多快? 对我来说,这听起来像是在说“我们给你一个更快的互联网连接,即一个更胖的管道,但你的网页浏览速度会慢一点。 所有其他事情都是平等的,正如我们在测试中所做的那样,我们非常好奇我们的应用程序只有这一次变化才能表现得更差。

Java:从Oracle读取Blob

我有这个代码将Treemap转换为字节并将它们存储在数据库(Oracle 11g)中。 现在存储似乎工作正常。 我想现在检索地图,但它在blob字段中以字节为单位。 如何检索和重新构建地图? 存储地图的代码是: public void StoreMapDB(TreeMap map) throws IOException, FileNotFoundException{ try { Connection con = null; Class.forName(“oracle.jdbc.driver.OracleDriver”); con=DriverManager.getConnection( “jdbc:oracle:thin:@dsds”, “dsdsd”, “XXdsdsX”); con.setAutoCommit(false); ByteArrayOutputStream bos = new ByteArrayOutputStream() ; ObjectOutputStream out = new ObjectOutputStream(bos); out = new ObjectOutputStream(bos) ; out.writeObject(map); out.close(); byte[] buf = bos.toByteArray(); PreparedStatement prepareStatement = con.prepareStatement(“INSERT INTO SMD_DATESTREEMAP VALUES(?,?)”); prepareStatement.setLong(1, […]

oracle 11g和hibernate spring和jsf的集成

我正在使用jsf 2,hibernate 4.1.4,spring 3.1,oracle 11g和maven 3.但它无法连接到oracle并且有错误。 我下载了最新版本的ojdbc6。 applicationContext.xml中 model.Customer org.hibernate.dialect.Oracle10gDialect true 脸,配置 org.springframework.web.jsf.el.SpringBeanFacesELResolver web.xml中 jsfspringhiber org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/applicationContext.xml org.springframework.web.context.request.RequestContextListener javax.faces.PROJECT_STAGE Development default.xhtml Faces Servlet javax.faces.webapp.FacesServlet 1 Faces Servlet *.xhtml /faces/* State saving method: ‘client’ or ‘server’ (=default). See JSF Specification 2.5.2 javax.faces.STATE_SAVING_METHOD client javax.servlet.jsp.jstl.fmt.localizationContext resources.application com.sun.faces.config.ConfigureListener CustomerDaoImpl.java public class CustomerDaoImpl implements ICustomerDao{ private SessionFactory sessionFactory; […]

如何将数组从Java返回到PL / SQL?

从PL / SQL到Java来回传递数字和字符串没有问题,但是如何传递数组呢? 我从PL / SQL调用Java – 而不是其他方式。 下面是get_widgets_as_string按预期工作的示例。 如何为so19j.get_widgets_as_array()编写PL / SQL 调用规范 ,以便我可以从PL / SQL调用它? 我已经阅读了发布带有调用规范的Java类 ,我可以看到嵌套表对应于oracle.sql.ARRAY ,但是我无法使它工作。 我可能错过了一些微不足道的细节,因为我不是Java程序员。 create or replace and compile java source named “so19j” as import java.lang.*; public class so19j { public static String get_widgets_as_string() { String widgets = “foo;bar;zoo”; return widgets; } public static String[] get_widgets_as_array() { String[] widgets […]

Listagg函数和ORA-01489:字符串连接的结果太长

当我运行以下查询时: Select tm.product_id, listagg(tm.book_id || ‘(‘ || tm.score || ‘)’,’,’) within group (order by tm.product_id) as matches from tl_product_match tm where tm.book_id is not null group by tm.product_id Oracle返回以下错误: ORA-01489: result of string concatenation is too long 我知道失败的原因是listagg函数试图连接大于4000个字符的值,这些值不受支持。 我已经看到了这里描述的替代示例 – http://www.oracle-base.com/articles/misc/string-aggregation-techniques.php但它们都需要使用函数或过程。 是否有一个纯SQL的解决方案,而无需调用函数或存储过程,并且能够使用标准JDBC读取值? 我遇到的另一个困难是我见过的大多数字符串聚合示例都显示了如何按原样读取值的示例。 在我的例子中我首先修改了值(即我正在聚合两列)。

从数据库列中检索时,Java不会将“\ n”视为新行

我面临一个奇怪的问题。 我正在做的是我将一些值存储在DB(oracle 11g)中作为varchar2并在java中获取值并使用获取的数据。 现在我将\ n作为DB中的值并使用rs.getString()在java中获取它。 我得到了适当的价值\n 。 String newLine=rs.getString(“column_value”); 现在我解析一个HTML页面并将整个页面作为一个字符串。假设该页面有3行,每行描述如下的ssome信息: Time: 08 AM – 11 AM Duration : 36 minutes 现在在代码中我将“持续时间:”传递给一个方法,这将返回“36分钟”。 我使用的逻辑是我得到索引“持续时间:”并读取直到“\ n”遇到。如果我将换行声明为 String newLine= “\n”; 但是,如果我从数据库中获取它它不起作用。 我知道我不需要将其存储在数据库中,但我不想对这些项进行硬编码。 所以我必须将它存储在DB中。 任何人都可以帮助我吗?

了解神秘的Oracle JDBC错误 – ORA-00911:无效字符

我正在制作Java 1.6-JDBC-Oracle 11代码。 我创建了一个名为employee的表,其中包含id,name和age。 我收到错误 – ORA-00911:无效字符。 我怎样才能解决这个问题 ? 这是我的代码 – import java.sql.*; import java.util.Properties; import java.io.IOException; import java.io.FileInputStream; public class HelloOracle { static String query = “SELECT emp_id, emp_name, emp_age ” + “FROM employee;”; public static void main(String[] args) { String username = “”; String password = “”; Properties prop = new Properties(); try […]

Oracle SqlDeveloper JDK路径

我最近安装了sqldeveloper,但是当我尝试启动它时,我得到了以下警告窗口。 这导致sqldeveloper运行得非常慢并且经常挂起 我已经尝试按照上面的窗口中的建议编辑文件sqldeveloper.cong但是不起作用 原版的 SetJavaHome ../../jdk 更新1 SetJavaHome C:\ Program Files \ Java \ jdk1.7.0_60 \ bin \以及所有其他变体,但仍然获得上述警告窗口 更新2 SetJavaHome C:\ Program Files(x86)\ Java \ jre7 \ bin以及所有其他变体 请建议正确的方法

ORA-12514:TNS:监听器当前不知道连接描述符中请求的服务

我在尝试通过监听器连接到Oracle数据库XE时遇到问题: sqlplus system/my_password@XE 我收到以下错误: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor 我使用的是Ubuntu 12.10和Oracle Express Edition 11g。 我的主要目标是使用jdbc连接java + oracle db,但是我得到了同样的错误。 这是我的listener.ora # listener.ora Network Configuration File: SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS […]