Tag: sybase

Java – Hibernateexception – 无法映射反馈

我是Hibernate的新手。 最近,我尝试使用Spring和Hibernate将我的UI与数据库连接起来的简单示例。 我能够成功调用一个方法来通过我的控制器,服务等使用REST获取数据。 但每当我运行应用程序时,我遇到以下错误。 这里“ 反馈 ”是数据库中表的名称以及我的Pojo Java类的相同名称。 注意:为表和Java类赋予不同的名称也会导致相同的错误。 org.springframework.orm.hibernate3.HibernateQueryException:反馈未映射[来自反馈]; 嵌套exception是org.hibernate.hql.ast.QuerySyntaxException:反馈未映射[来自反馈] Java Pojo: – import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name=”Feedback”) public class Feedback { private int id; private String title; private String content; private String name; @Id @GeneratedValue @Column(name=”id”) public int getId() { return id; } public void setId(int […]

为什么spring jdbcTemplate batchUpdate逐行插入

我有200K行插入一个数据库表中。 我试图在spring中使用jdbcTemplate.batchUpdate ,以便每批次插入10,000个。 但是,此过程会消耗太多时间(对于200K行,为7分钟)。 所以在数据库方面,我检查了select count(*) from table_X插入的行select count(*) from table_X 。 我发现行数略有增加,预计为10K。 任何人都可以解释是什么原因或者是应该在数据库端配置的东西吗? PS:我正在使用sybase ….

从数据库加载26MB文本数据消耗了258MB的JVM堆

在启动时本地运行的应用程序(Spring,JPA Hibernate,Sybase 12,Webapp)消耗基于VisualVM的40MB 256MB堆空间。 当我触发返回70,000多行(文本数据没有blob)的搜索时,堆空间图最多可以拍摄256MB并且会丢失内存。 我已经通过使用setMaxResults(limit)解决了这个问题。 但是,当我查询相同的数据,复制粘贴到文本文件并保存到文件系统时,我可以看到大小只有26MB的文本。 因此,实际上,从数据库中加载26MB的文本消耗了216MB(从256-40),这些数据在内存不足时消耗190MB ? 也许这将是框架,但我不知道它如何比正在加载的实际数据消耗更多…… * *再次注意我用setMaxResults(限制)解决了这个问题,我的问题不是为了教育目的而是为了做什么而是为什么。

ResultSet.getTimestamp(“date”)vs ResultSet.getTimestamp(“date”,Calendar.getInstance(tz))

java.util.Date , java.util.Timetamp似乎对很多人造成了很大的困惑。 在StackOverflow中有很多问题,不幸的是我的问题有点扭曲。 有两个JDBC api。 他们应该如何表现? RDBMS之间是否存在任何一致性? ResultSet.getTimestamp(“dateColumn”) ResultSet.getTimestamp(“dateColumn”, Calendar.getInstance(tz)) 如果有人对Sybase有所了解,请您分享一下您的经验?

将Java连接到SQL Anywhere数据库时出错

我正在尝试将java程序连接到数据库。 我在构建路径中有sajdbc4.jar并且之前有效,但是现在我在尝试建立连接时不断收到此错误: 线程“main”中的exceptionjava.lang.UnsatisfiedLinkError:java.lang.ClassLoader.loadLibrary(未知源)中的java.library.path中没有dbjdbc12,位于java.lang.System的java.lang.Runtime.loadLibrary0(未知源)位于sybase.jdbc4.sqlanywhere.IDriver.try_load(IDriver.java:455)的.loadLibrary(未知来源)at sybase.jdbc4.sqlanywhere.IDriver。(IDriver.java:396)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) )sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Unknown Source)at java.lang.Class.newInstance(Unknown Source) )java.util.ServiceLoader上的java.util.ServiceLoader $ LazyIterator.nextService(未知源)java.util.ServiceLoader上的$ LazyIterator.next(未知源)$ 1.next(未知来源)java.sql.DriverManager $ 2。在java.security.AccessController上的java.sql.DriverManager $ 2.run(未知来源)上运行(未知来源) .doPrivileged(本机方法)位于java.sql.DriverManager的java.sql.DriverManager.loadInitialDrivers(未知来源)。(Main.java:26)中的(未知来源) 有人可以帮帮我吗? 在网上找不到任何重要的问题。

什么是关于数据库和JNDI的validationQuery?

我似乎和这个原始SO问题的海报有着同样的问题。 问题是,他用以下评论回答了他自己的问题: 我解决了我的问题,我在我的JNDI数据源中添加了一个validationQuery。 不幸的是,这对我没有任何意义,并没有帮助我解决我的问题。 所以我问:关于我的数据库(Sybase)和用于保存服务器查找信息的JNDI条目,什么是“ validationQuery ”? 提前致谢。

让ExecuteBatch更快地执行

我正在尝试从sybase服务器读取表,处理行,并将结果输出到另一个表。 (下面是我的代码) 代码检索表非常快,并且处理速度相同(得到它在30秒内发送的部分)。 但是当我运行执行批处理时,它会在那里停留20分钟(fyi,我有一张表,我正在测试8400行)。 有没有更有效的方法来做到这一点? 我可以接受如何收到或发送查询(我可以创建一个新表,更新表等) – 我只是不知道为什么这么慢(我确定数据<1 MB和我确定它不需要SQL服务器20分钟来解析8400行)。 有任何想法吗? 注意:这对我来说真的很糟糕的原因是我必须解析一个1.2 MM行的表(我正在使用的这个表是一个8400行的测试表) Connection conn = DriverManager.getConnection(conString, user, pass); String sql = “SELECT id,dateid,attr from user.fromtable”; Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sql); String sqlOut = “INSERT INTO user.mytabletest (id,attr,date,estEndtime) values (?,?,?,?)”; PreparedStatement ps = conn.prepareStatement(sqlOut); int i=1; while(rs.next()) { int date = rs.getInt(“dateid”); String […]

通过JDBC调用Sybase存储过程时的空结果集

我正在调用一个Sybase存储过程,它通过JDBC返回多个结果集。 我需要获取一个具有名为“Result”的列的特定结果集这是我的代码: CallableStatement cs = conn.prepareCall(sqlCall); cs.registerOutParameter(1, Types.VARCHAR); cs.execute(); ResultSet rs=null; int count = 1; boolean flag = true; while (count < 20000 && flag == true) { cs.getMoreResults(); rs = cs.getResultSet(); if (rs != null) { ResultSetMetaData resultSetMetaData = rs.getMetaData(); int columnsCount = resultSetMetaData.getColumnCount(); if (resultSetMetaData.getColumnName(1).equals("Result")) { // action code resultset found flag = […]