Tag: jdbc

PreparedStatement抛出语法错误

我正在使用PreparedStatements准备一个查询,当我用条件参数硬编码查询时它运行正常。 如果参数是从setString()方法传递的,则抛出错误。 com.mysql.jdbc.JDBC4PreparedStatement@2cf63e26: select * from linkedin_page_mess ages where company_id = ‘2414183’ com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘?’ at line 1 在错误日志中,我的查询上面看起来很好。 public JSONObject getLinkedInMessages(String compId) { linlogger.log(Level.INFO, “Called getLinkedInMessages method”); Connection conn = […]

Java JDBC Lazy-Loaded ResultSet

有没有办法获得从运行JDBC查询获得的ResultSet来延迟加载? 我希望每行都按照我的要求加载,而不是事先加载。

SQLException:列名无效……?

我有一个JSP文件,我在Eclipse,Maven和Tomcat的帮助下在Java项目中部署。 我有一些其他几乎与此相同的JSP文件,尽管它们运行不同的操作。 无论如何,当我进入页面时,我已经给出了这个: org.apache.jasper.JasperException: An exception occurred processing JSP page /entertime2.jsp at line 106 103: rsBug = psBug.executeQuery(); 104: 105: while(rsBug.next()) { 106: Bug b = new Bug(rsBug); 107: out.println(“” + b.get(Bug.TITLE) + “”); 108: } 109: rsBug.close(); root cause javax.servlet.ServletException: java.sql.SQLException: Invalid column name ixPersonOpenedBy. Bug是一个自定义类,可以接收结果集 – rsBug – 并执行以下操作: setValue(Bug.BUG_ID,rs.getString(Bug.BUG_ID)); setValue(Bug.PERSON_OPENED_BY,rs.getString(Bug.PERSON_OPENED_BY)); setValue(Bug.PERSON_ASSIGNED_TO,rs.getString(Bug.PERSON_ASSIGNED_TO)); setValue(Bug.TITLE, […]

优化JDBC中的数据调用到JTable上

目前我在MySQL服务器上有数据,我通过JDBC将数据调用到JTable。 但是有1369行,似乎它有太多的数据要加载。 通常需要5分钟才能加载。 有没有优化过程? 这是我的代码(我提前为一个混乱的代码道歉): public class DataTable { private String databaseName = “*****”; private String tableName = “******”; public void showDatabase(){ Connection conn = null; DatabaseMetaData meta = null; Statement stmt = null; ResultSet rs = null; int k = 0; try{ Class.forName(“com.mysql.jdbc.Driver”).newInstance(); String connectionUrl = “jdbc:mysql://localhost:3306/” + databaseName; String connectionUser = “*****”; String […]

java.lang.AbstractMethodError:com.mysql.jdbc.PreparedStatement.setBlob(ILjava / io / InputStream;)V

我试图在MySQL数据库中保存上传的文件,如下所示: String firstName = request.getParameter(“firstName”); String lastName = request.getParameter(“lastName”); InputStream inputStream = null; // input stream of the upload file // obtains the upload file part in this multipart request Part filePart = request.getPart(“photo”); if (filePart != null) { // prints out some information for debugging System.out.println(filePart.getName()); System.out.println(filePart.getSize()); System.out.println(filePart.getContentType()); // obtains input stream of the […]

UCanAccess初始化程序错误(无IDE编译/运行)

我一直在尝试创建一个新项目来使用UCanAccess来读取MS Access文件。 我一直在关注来自@Gord Thompson的信息和ganub中UCanAccess的示例文件。 排除我使用不同名称的事实是一样的。 我不使用任何GUI IDE。 我只是从命令行编译,基本上,我编写了一个执行命令行编译的Java程序。 参考文献: 在没有ODBC的情况下从Java操作Access数据库 https://github.com/andrew-nguyen/ucanaccess/blob/master/example/net/ucanaccess/example/Example.java 我的代码示例如下: String path = new java.io.File(PATH).getAbsolutePath(); db = “jdbc:ucanaccess://” + path; Class.forName(“net.ucanaccess.jdbc.UcanaccessDriver”); Connection conn = DriverManager.getConnection( db ); Statement s = conn.createStatement(); 我的错误信息是: Exception in thread “main” java.lang.ExceptionInInitializerError at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at GreatBeyond.(GreatBeyond.java:36) at GreatBeyond.main(GreatBeyond.java:66) Caused by: java.lang.RuntimeException: org.hsqldb.jdbc.JDBCDriver at net.ucanaccess.jdbc.UcanaccessDriver.(UcanaccessDriver.java:54) … […]

我应该将什么事务管理器用于JBDC模板使用JPA时?

我正在为JPA事务使用标准的JPA事务管理器。 但是,现在我想添加一些将共享相同“数据源”的JDBC实体。 如何使用spring事务使JDBC操作具有事务性? 我是否需要切换到JTA事务管理器? 是否可以将JPA和JDBC事务服务与相同的数据源一起使用? 更好的是,是否可以混合这两笔交易? 更新:@Espen: 我有一个从SimpleJdbcDaoSupport扩展的dao,它使用getSimpleJDBCTemplate.update插入数据库行。 当从服务代码抛出RuntimeException时,事务在使用JPATransactionManager时永远不会回滚。 它在使用DatasourceTransactionManager时会回滚。 我试图调试JPATransactionManager,似乎它永远不会在底层JDBCConnection上执行回滚(我想由于数据源不一定是JPA的JDBC)。 我的配置设置与您在此处解释的完全相同。 这是我的测试代码: <!– –> <!– –> 这里是道: @Transactional public class CallRecordingScheduledProgramTriggerDAOJDBCImpl extends SimpleJdbcDaoSupport implements CallRecordingScheduledProgramTriggerDAO{ private static final Log log = LogFactory.getLog(CallRecordingScheduledProgramTriggerDAOJDBCImpl.class); @SuppressWarnings(“unchecked”) public CallRecordingScheduledProgramTrigger save( CallRecordingScheduledProgramTrigger entity) { log.debug(“save -> entity: ” + entity); String sql = null; Map args = new HashMap(); […]

java.sql.SQLException:在开始结果集之前

我已经尝试了以下代码来检索存储在数据库中的图像。 我创建了一个名为image_db的数据库,其中包含一个名为image_details的表。 该表有两个字段, id和image_path ,两者都是mediumblob类型。我在image_path字段中存储了一些二进制映像。 现在我想检索并显示它。 package cbir.imageAddition; import java.awt.Image; import java.awt.Toolkit; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.*; enter code here public class ImageRetrieve { public ImageRetrieve() throws SQLException, IOException, ClassNotFoundException { Connection con = null; Statement st = null; ResultSet rs = null; String url = “jdbc:mysql://localhost:3306/”; String […]

java.lang.AbstractMethodError:com.mysql.jdbc.Connection.isValid(I)Z

我正在尝试使用数据源将我的Servlet连接到mysql数据库。 但每当我运行我的servlet时,我最终会得到这个exception: java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:913) org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:282) org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:356) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2306) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2289) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2038) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1532) Servlet.AbdulTayyebs.processRequest(AbdulTayyebs.java:36) Servlet.AbdulTayyebs.doGet(AbdulTayyebs.java:57) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 这是我的Content.xml 这是我的web.xml DB Connection jdbc/abdultayyebs javax.sql.DataSource Container 这是我的servlet AbdulTayyebs import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.SQLException; import javax.naming.Context; import javax.naming.InitialContext; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; public class AbdulTayyebs extends HttpServlet { […]

如何使用Java / JDBC在Oracle数据库中存储长度超过4000个字符的字符串?

我不确定如何使用Java / JDBC将非常长的字符串插入Oracle数据库。 我有一个大于4000个字符的字符串,假设它是6000.我想取这个字符串并将其存储在Oracle数据库中。 这样做的方式似乎是使用CLOB数据类型。 好的,所以我将列声明为描述CLOB。 现在,当实际插入数据时,我有一个准备好的语句pstmt。 它看起来像pstmt = conn.prepareStatement(“INSERT INTO Table VALUES(?)”) 。 所以我想使用方法pstmt.setClob() 。 但是,我不知道如何使用我的String创建一个Clob对象; 没有构造函数(大概是因为它可能比可用内存大得多)。 如何将我的String放入Clob? 请记住,我不是一个非常有经验的程序员; 请尽量保持解释尽可能简单。 效率,良好实践等不是这里的关注点,我只想要绝对最简单的解决方案。 如果可能的话,我想避免下载其他软件包; 现在我只使用JDK 1.4和标记为ojdbc14.jar 。 我看了一下,但我没能按照我发现的任何解释。 如果你有一个不使用Clobs的解决方案,我也会对此持开放态度,但它必须是一列。