Tag: sql

映射文件中的Hibernate’Inverse’

有人可以解释在xml映射文件中使用inverse,我正在阅读教程但是没有理解它在映射文件中的使用? 谢谢

如何在java中的结果集中迭代行的值?

结果集我说的是: http : //docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSet.html 我想做的是…… for row in rows for col in row //col is the name of the column, row[col] is the value. 我在PHP中比JSP,fyi更有资格。 这将在PHP中完成,如下所示: foreach($rs as $row) foreach($row as $col => $val) //val is the cell value, and column is the column name 编辑:我正在寻找一个通用的解决方案。 注意col是一个变量,而不是文字。

org.hibernate.ObjectNotFoundException:不存在具有给定标识符的行,但它确实存在

我有一个无法修复的hibernate问题。 设置:Java EE,Web应用程序,Hibernate 3.2,Tomcat 6,Struts 2。 基本上,我使用我的服务器逻辑(一个struts动作)持久保存一个对象,然后尝试将该数据拉出来用于下一页并显示它。 我保存对象后检查数据库,果然,我可以在那里查看包含所有数据的行。 但是当我尝试检索它时,我得到了这个: org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [msc.model.Picture#73] 为了使事情变得更加混乱,当我重新启动Tomcat并尝试访问同一个对象时,我没有得到错误 – Hibernate发现行就好了。 如果我做一些其他的操作,Hibernate也能看到该行 – 也许在这里和那里添加一行到数据库,甚至不在同一个表上。 从这一切我怀疑一个Hibernate错误,但我是一个Hibernate新手,所以我可能错了。 请帮忙! 我用Google搜索并用Google搜索无效。 这是我的Hibernate配置: org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/msc root ——- 80 thread true 这是我的两个映射文件: 和 如果您需要更多信息,请告诉我,我很高兴。 (注意:这不是这个问题的重复,场景不一样“没有给定标识符的行存在”,尽管它存在 ) 编辑 :根据要求,发布Java代码: 用于保存对象的代码 Session hib_ses = HibernateUtil.getSessionFactory().getCurrentSession(); hib_ses.beginTransaction(); hib_ses.save(user); hib_ses.getTransaction().commit(); 显示数据的代码(本例中为图像) public class ImageAction […]

从大表中检索所有记录时如何避免OOM(Out of memory)错误?

我有一个任务是将一个巨大的表转换为自定义XML文件。 我将使用Java来完成这项工作。 如果我只是发出“SELECT * FROM customer”,它可能会返回最终导致OOM的大量数据。 我想知道,有没有办法可以在记录可用后立即处理,并在sql检索过程中从内存中删除记录? —于2009年7月13日编辑 让我详细说明我的问题。 我有1个db服务器和1个应用服务器。 当我在应用程序中发出选择查询时,数据将从数据库服务器传输到应用服务器。 我相信(如果我错了,请纠正我)ResultSet需要等到接收到查询中的所有记录。 即使我们将获取大小设置为4,对于1000记录表,我们仍然最终在app服务器的堆内存中有1000条记录,这是正确的吗? 获取大小仅影响从/向数据库服务器的往返次数。 我的问题是,如何在它到达app服务器后立即开始处理该4个(或任何数字)记录,并将其丢弃以释放应用服务器中的内存?

addScalar做什么?

JavaDoc说: SQLQuery org.hibernate.SQLQuery.addScalar(String columnAlias, Type type) Declare a scalar query result 我知道在C#中是什么executeScalar ,但是这个标量和C#标量似乎完全不同。

使用DAO模式的利弊

正如我在标题中提到的,我很想知道你(经验丰富的开发人员)对DAO模式的使用有何看法,特别是在Web应用程序中。 你发现了什么样的优势以及它的使用带来了什么后果?

无法使用executeQuery()发出数据操作语句

我使用com.mysql.jdbc.Driver 我需要插入并获取id。 我的查询: INSERT INTO Sessions(id_user) VALUES(1); SELECT LAST_INSERT_ID() FROM Sessions LIMIT 1; 错误 – 无法使用executeQuery()发出数据操作语句 如何插入并获取ID?

Statement.executeUpdate()返回-1时的含义是什么?

在management studio和executeUpdate中运行的查询使得相同的executeUpdate返回-1 ,这在我们可以找到的任何文档中都是未定义的。 它应该只返回rowcount或0 。 这是什么意思? 如果重要,驱动程序是JDBC-ODBC桥。 例: String query = “IF NOT EXISTS (SELECT * FROM animals WHERE animal_name ='” + a +”‘) INSERT INTO ” + table + ” (animal_name, animal_desc, species_id) VALUES (‘” + a + “‘, ‘” + b + “‘, ” + c + “)”; int result = statement.executeUpdate(query); System.out.println(result); […]

oracle jdbc驱动程序版疯狂

为什么Oracle为每个(!)数据库版本提供了不同的(!)版本的JDBC驱动程序,例如ojdbc14.jar? 这些文件都有不同的大小,因此可能是不同的内容。 背景: 保存数据时,我们得到一个随机且看似不可复制的错误“无效数字”(我们猜测它是时间戳)。 但这不是任何特别的声明。 大多数时候,它可以节省很多。 每月只需​​一次无害的陈述就会失败。 所以我仔细研究了Oracle的下载站点,并注意到尽管文件共享相同的名称,但没有一个文件大小匹配。 我们的产品运行在由客户维护的数据库上,即客户端运行的任何版本和补丁都是它。 那么我们使用什么驱动程序? 最新的(Oracle 11g) – 尽管它通常是9i和 10g数据库? 为什么他们不将所有版本链接到相同的“一个驱动程序适合所有”文件? 或者是否有微小差异导致像随机错误这样的影响? 编辑:我错了9i数据库。

JPA-在非实体类中连接两个表

我是新手,试图谷歌,但我无法解决我的疑问。 请帮忙。 我试图映射两个实体:我的POJO类PersonC中的PersonA和Person @Entity class PersonA{ String sample_field; } @Entity class Person{ String id; String name; } 以上两个是jpa的实体。 现在我想将它们合并到一个pojo类中。 class PersonC { Strind id; String address; } 尝试下面的代码,但当我尝试获取地址/外键字段时,它不起作用。 @SqlResultSetMapping(name=”PersonC”, classes = { @ConstructorResult(targetClass = PersonC.class, columns = {@ColumnResult(name=”name”) , @ColumnResult(name=”address”) )} 我应该在哪里定义@SqlResultSetMapping,从上面的哪个类? )})