Tag: sql

Java – 连接关闭后无法使用ResultSet

关闭与MySQL的连接时遇到问题。 我收到了错误: java.sql.SQLException:ResultSet关闭后不允许操作 我的代码: public static ResultSet sqlquery (String query) { ResultSet rs=null; Connection connection=null; Statement st=null; try{ Class.forName(“com.mysql.jdbc.Driver”); connection = DriverManager.getConnection(“databaseadress”,”username”,”password”); st = connection.createStatement(); rs = st.executeQuery(query); }catch(SQLException e){System.out.println(“SQL error: ” + e);} catch(Exception e){System.out.println(“Error: ” + e);} finally { try{ if(rs != null) rs.close(); if(st!= null) st.close(); if(connection != null) connection.close(); }catch(SQLException e){System.out.println(“SQL […]

转换日期格式

我得到’14-Dec-2010’日期我希望得到给定日期的数字格式的月份。 也就是说,我希望将日期转换为’14-12-2010′ 。

不再需要Class.forName(JDBC_DRIVER)?

我已经在这里阅读了自从java 6以来你不再需要使用以下命令注册JDBC Driver: Class.forName(JDBC_DRIVER); 因为DriverManager使用位于系统属性“jdbc.drivers”中的路径来检索正确的驱动程序。 但是当我做以下时: System.out.print(System.getProperty(“jdbc.drivers”)); null被打印。 你有什么线索为什么我的应用程序正常工作? ;)

为什么建议避免外键上的单向一对多关联?

可能重复: Hibernate单向一对多关联 – 为什么连接表更好? 在Hibernate在线文档中,在第7.2.3节“一对多”中,提到了: 外键上的单向一对多关联是一种不常见的情况,不建议这样做。 您应该使用连接表进行此类关联。 我想知道为什么? 我唯一想到的是,它可以在级联删除期间产生问题。 例如,Person指的是外键上一对多关系的地址,该地址将拒绝在该人之前删除。 任何人都可以解释推荐背后的理性吗? 以下是参考文件内容的链接: 7.2.3。 一到多 我在这里复制粘贴了实际内容: 外键上的单向一对多关联是一种不常见的情况,不建议这样做。 create table Person (personId bigint not null primary key) create table Address (addressId bigint not null primary key, personId bigint not null) 您应该使用连接表进行此类关联。

JPA本机查询连接返回对象但是取消引用会抛出类强制转换exception

我正在使用JPQL Native查询来连接表,查询结果存储在List 。 public String getJoinJpqlNativeQuery() { String final SQL_JOIN = “SELECT v1.bitbit, v1.numnum, v1.someTime, t1.username, t1.anotherNum FROM MasatosanTest t1 JOIN MasatoView v1 ON v1.username = t1.username;” System.out.println(“get join jpql native query is being called ============================”); EntityManager em = null; List out = null; try { em = EmProvider.getDefaultManager(); Query query = em.createNativeQuery(SQL_JOIN); out = […]

App Engine Java Servlet无法连接到Cloud SQL

我使用app引擎创建了一个java web servlet,servlet向数据库发出请求。 我已经使用本地数据库在本地测试了servlet并且它运行良好,然后我继续在本地测试servlet但是仍然访问了Cloud SQL数据库,这也很有效。 我部署servlet后出现问题。 部署完所有数据库请求后返回以下内容: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 我在云控制台中检查了一下,我的应用程序已正确添加到访问控制选项卡下的云SQL授权应用程序引擎应用程序中。 是否有人在部署的应用引擎servlet上遇到过类似的问题? 那里有任何解决方案或建议吗? 我将不胜感激任何帮助! 更新: 使用以下代码生成上述错误以访问db Class.forName(“com.mysql.jdbc.Driver”); Url = “jdbc:mysql://:3306/”; Connection con = DriverManager.getConnection (Url,”root”,); 使用此代码实现了同样的错误,请注意它与此处示例中显示的代码非常相似https://developers.google.com/appengine/docs/java/cloud-sql/ Class.forName(“com.mysql.jdbc.GoogleDriver”); Url = “jdbc:google:mysql:///? user=root&password=”; Connection […]

在hibernate标准中使用sum()

如何将sql查询select sum(amount * direction) from transactions写入hibernate条件?

使用JDBC在SQL中的日期之间进行搜索?

我目前正在编写一个Java Swing应用程序,它从MYOB数据库文件中读取数据并在表格中显示某些信息。 我已经能够成功生成所需的SQL语句,但是我无法添加日期之间的搜索function(我们的数据库非常大,所以我们试图限制结果)。 我的一个查询的示例如下(用Java编写): rs = stmt.executeQuery(“SELECT sales.InvoiceNumber, sales.ShipToAddress, sales.Date ” + “FROM sales, customers ” + “WHERE sales.CardRecordID = customers.CardRecordID ” + “AND customers.Name = ‘Cash Sales’ ” + “ORDER BY sales.ShipToAddress ASC, sales.Date DESC” + “;”); 我有两个日期(它们实际上是Java中的字符串,但格式为dd / MM / yyyy)。 我尝试在我的WHERE使用另一个AND子句与BETWEEN语句,但我从JDBC [MYOB ODBC]Error getting the literal value of right operand.得到以下[MYOB ODBC]Error getting […]

如何在MyBatis foreach中迭代HashMap?

我正在尝试在mybatis中生成如下所示的sql。 SELECT COL_C FROM TBLE_1 WHERE (COL_A, COL_B) in ( (‘kp’,’kar’),(‘srt’,’sach’)); 我的输入参数类型是HashMap。 现在如何从mapper xml文件生成SQL。 下面的代码抛出exception,说map被评估为null。 SELECT COL_C FROM TBLE_1 WHERE (COL_A, COL_B) in #{item},#{item.get(item)} 另一种方法是创建一个具有键值字段的类,创建一个对象列表,然后将parameterType作为list传递,如下所示。 SELECT COL_C FROM TBLE_1 WHERE (COL_A, COL_B) in #{item.getKey()},#{item.getVal()} 但有没有办法让我的mapper工作第一种方法? 除了将查询更改为union之外

错误:无法为具有多个返回的查询创建TypedQuery

我尝试用java和jpa做函数searchBook。 我有2个class,分别是媒体和书。 本书扩展了媒体。 我将数据保存在不同的表中。 我尝试从下面的查询中选择数据: TypedQuery query = em.createQuery( “SELECT m.title, b.isbn, b.authors” + ” FROM Book b, Media m” + ” WHERE b.isbn = :isbn” + ” OR lower(m.title) LIKE :title” + ” OR b.authors LIKE :authors”, Media.class); query.setParameter(“isbn”, book.getisbn()); query.setParameter(“title”, “%” + book.getTitle().toLowerCase() + “%”); query.setParameter(“authors”, “%” + book.getAuthors() + “%”); bookList = […]