我只是花了太多的时间试图在连接一些JNDI工厂bean的时候弄清楚一些错误。 问题原来是,而不是这个… <bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="java:comp/env/jdbc/loc"/> </bean> 我其实写了这个… <bean id="someId" class="org.springframework.jndi.JndiObjectFactoryBean"> <property name="jndiName" value="jdbc/loc"/> </bean> 我推断java:comp / env /可能会引用一些环境variables,并使得它最终会查看我的上下文文件。 唯一的区别是java:comp / env /。 从专家的口中,这是做什么的? 如果在值中没有java:comp / env前缀,我会得到一个错误,指出“名称jdbc未在此上下文中绑定”。
我在我的Windows 7 64位操作系统中安装了Oracle 11g Express Edition Release 2,并试图执行JDBC程序,然后出现以下错误: java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503) at java.sql.DriverManager.getConnection(Unknown Source) at java.sql.DriverManager.getConnection(Unknown Source) at com.jlcindia.jdbc.JDBCUtil.geOracleConnection(JDBCUtil.java:28) at Lab3O.main(Lab3O.java:15) Caused by: oracle.net.ns.NetException: Listener refused the […]
我有一个包含date的数据库表 (`date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'). 我正在使用MySQL。 从程序中有时数据没有date传递到数据库。 所以,当date值被自动赋值为0000-00-00 00:00:00时,表格数据被调用时会给出错误的date列 …'0000-00-00 00:00:00' can not be represented as java.sql.Timestamp……. 我试图将空值传递给插入数据的date,但是它被赋值到当前时间。 有什么办法可以在不改变表结构的情况下得到ResultSet 提前致谢
用java.sql.ResultSet有没有办法通过使用列的索引来获取列的名称作为String ? 我浏览了API文档,但找不到任何东西。
这是内联瓦特/ 写一个大的ResultSet到一个文件,但有问题的文件是一个Excel文件。 我正在使用Apache POI库来编写一个Excel文件,其中包含从ResultSet对象中检索的大型数据集。 数据可能从几千条到约一百万条; 不知道这是如何转换成Excel格式的文件系统字节。 以下是我编写的一个testing代码,用于检查编写如此大的结果集所需的时间,以及CPU和内存的性能影响。 protected void writeResultsetToExcelFile(ResultSet rs, int numSheets, String fileNameAndPath) throws Exception { BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(fileNameAndPath)); int numColumns = rs.getMetaData().getColumnCount(); Workbook wb = ExcelFileUtil.createExcelWorkBook(true, numSheets); Row heading = wb.getSheetAt(0).createRow(1); ResultSetMetaData rsmd = rs.getMetaData(); for(int x = 0; x < numColumns; x++) { Cell cell = heading.createCell(x+1); cell.setCellValue(rsmd.getColumnLabel(x+1)); […]
我想知道是否有办法对数据库进行asynchronous调用? 例如,假设我有一个需要很长时间处理的大请求,我想发送请求,并在请求返回一个值(通过传递一个监听器/callback或其他)时收到一个通知。 我不想阻止等待数据库回答。 我不认为使用线程池是一个解决scheme,因为它不扩展,在繁重的并发请求的情况下,这将产生大量的线程。 我们正面临networking服务器的这种问题,我们通过使用select / poll / epoll系统调用来find解决scheme,以避免每个连接有一个线程。 我只是想知道如何有一个类似的function与数据库请求? 注:我知道使用FixedThreadPool可能是一个很好的解决方法,但我很惊讶没有人开发出一个真正asynchronous的系统(没有使用额外的线程)。 **更新** 由于缺乏切实可行的解决scheme,我决定自己创build一个库(finagle的一部分): finagle-mysql 。 它基本上解码/解码MySQL的请求/响应,并使用Finagle / Netty下的。 即使有大量的连接,它也能很好地扩展。
我用准备好的语句写了select语句。 每次尝试运行它给出这个错误。 我怎么过来这个错误? 我的jdbc连接器是mysql-connector-java-5.1.13-bin.jar。 我的代码: public Main_add_ad_to getAdDetail(int ad_id) { Dbconnection db = new Dbconnection(); Connection con = db.getConnection(); ResultSet rs = null; PreparedStatement stmt = null; Main_add_ad_to detail_to = new Main_add_ad_to(); try { String selectSQL = "SELECT * FROM ads_tbl where id = ?"; stmt = con.prepareStatement(selectSQL); stmt.setInt(1, ad_id); rs = stmt.executeQuery(selectSQL); while (rs.next()) […]
我有这个Java程序: MySQLConnectExample.java import java.sql.*; import java.util.Properties; public class MySQLConnectExample { public static void main(String[] args) { Connection conn1 = null; Connection conn2 = null; Connection conn3 = null; try { String url1 = "jdbc:mysql://localhost:3306/aavikme"; String user = "root"; String password = "aa"; conn1 = DriverManager.getConnection(url1, user, password); if (conn1 != null) System.out.println("Connected to the database […]
所以我有4个菜单select(产品,位置,courseType和类别),所有这些都可以为空(使用JSF编程,但这应该是无关紧要的这个问题,因为它是一个SQL问题)。 菜单select将向托pipebean发送用户select的variables,并使用准备好的语句使用用户select的菜单中的信息(如果有的话)search数据库表。 如果用户离开菜单项为空,它应该search一切。 如果用户离开菜单项的1个,2个或3个信息,另一个为空,则应该相应地进行search。 我的问题是如何做到这一点,而无需附加到每个适当的SQL语句的bean的一堆if / then语句? 还是有一个更好的SQL语句,我可以做到这一切吗? 我正在使用Java中的准备语句。 我试过这个: if (product != null && location != null && courseType != null && category != null) { pstmt = conn.prepareStatement("select * FROM Courses WHERE " + "product = ? " + "and location = ? " + "and courseType = ? " + "and category […]
我不知道该写些什么,并决定在这里做。 懒惰的时间debugging我的程序后,我可以发现调用Driver.getConnection(string,string,string)挂起调用线程。 为什么(?),我真的不知道,但我可以发现这发生在java 1.6.0_29而不是java 1.6.0_26。 完整的环境: 操作系统:testing在红帽6.1和Windows 2008 驱动程序:MS SQL Server JDBC驱动程序版本3.0.1301.101 Java版本:1.6.0_26和1.6.0_29 正如我之前所说,它与1.6.0_26一起工作。 有没有人知道这可能是什么原因? 也许有些开发者? :p 最好的祝福, 瑞