Tag: ibatis

Hibernate或iBatis还是其他什么?

在我的项目中,我需要在运行时在数据库之间切换。 我试图使用Hibernate,但卡在一个地方,我需要用数据库中的表映射对象。 问题是,我有几个带前缀的表:documents2001,documents2002 ……据我所知,我无法在运行时使用表映射类。 我尝试使用iBatis,但问题是在运行时期间数据库更改。 在iBatis中,这很难做到。 也许有些建议,我该怎么用? 我的要求: 能够在运行时连接到不同的数据库 能够在运行时更改表(如果类映射到表,就像它在Hibernate中一样)。 更新:好的,我会试着解释一下: 我必须编写应用程序,它可以在运行时连接到不同的数据库。 app的用户可以选择,连接哪个数据库。 所有数据库都具有相同的结构。 除此之外,用户还可以在数据库中的表之间切换。 表具有相同的结构。 为什么我假设,我不能使用Hibernate:在Hibernate类中映射表,所以我不能在运行时更改表。 这不允许我选择我可以连接的表。 为什么我假设,我不能使用iBATIS。 在iBATIS中,在运行时期间很难连接到不同的数据库。 因此,用户将无法在运行时连接到不同的数据库。 也许我可以使用另一种工具?

如何为iBatis select语句设置fetchSize

我在Java中使用iBatis作为ORM框架。 我有一个选择声明 SELECT * FROM SOME_TABLE 我正在使用queryForList方法: List list = getSqlMapClientTemplate().queryForList(“getList”); 但是它检索了大量数据,并且此查询的性能非常慢。 我对这个问题的假设是iBatis具有默认的提取大小(例如在JDBS中是10),所以这就是它如此慢的原因。 所以我想设置更大的提取大小(例如1000)。 我怎么能这样做? 还是我看错了? 注意:我需要所有数据,因此在queryForList方法中设置最大结果对我来说不是一个合适的解决方案。 List queryForList(String id, Object parameterObject, int skip, int max)

MyBatis – 如何创建w动态WHERE子句

该服务获取一个包含三个值列表的未知对象[column,operator,value]例如,EMAIL – like – “TEST” 基于结果列表来构建我有的WHERE子句但我也能够构建如下的条件(例如) WHERE(电子邮件,如’test’和user_id 5)或(trans_id 500) 有谁可以帮我怎么做?

迭代Ibatis中的对象列表

我有一个对象列表,我想迭代并访问ibatis sql中的特定字段。 防爆。 public Class Student { String id; String name; } 我将作为参数传递给学生对象List(List(Student)) 并迭代访问每个对象bean的id。 我该怎么做呢?

通过Java JDBC使用iBATIS的Oracle SQL DATE转换问题

我目前正在使用Java中的iBATIS来解决Oracle SQL DATE转换问题。 我使用的是Oracle JDBC瘦驱动程序ojdbc14版本10.2.0.4.0。 iBATIS版本2.3.2。 Java 1.6.0_10-rc2-b32。 问题围绕这个SQL片段返回的DATE类型列: SELECT * FROM TABLE(pk_invoice_qry.get_contract_rate(?,?,?,?,?,?,?,?,?,?)) order by from_date 包过程调用返回一个包含在TABLE中的ref游标,然后很容易读取结果集,好像是对表的select查询。 在PL / SQL Developer中,返回的SQL DATE类型的FROM_DATE列之一具有一天中的时间精度: Tue Dec 16 23:59:00 PST 2008 但是当我通过iBATIS和JDBC访问它时,该值仅保留精确到白天: Tue Dec 16 12:00:00 AM PST 2008 这样显示时更清晰: 本来应该: 1229500740000 milliseconds since epoch Tuesday, December 16, 2008 11:59:00 PM PST 但得到这个: 1229414400000 milliseconds since epoch Tuesday, […]

MyBatis / iBatis – 在单独的SQL Map文件中可重用的sql片段?

我想将几个SQL Map XML文件使用的sql片段放在一个单独的文件中。 目前,带有这些片段的元素与其他元素(如一起位于其中一个映射器中,这使得它们很难找到。 我是否可以使用仅定义几个元素的映射器,而不是用于生成接口的实现? 这个映射器的正确名称空间是什么? 这是包含framents的SQL Map文件: WHERE date(`time`) BETWEEN #{startDate} AND #{endDate} … SELECT some_column, another_column FROM some_table 我想将这样的元素分开: 第一个Sql Map文件: WHERE date(`time`) BETWEEN #{startDate} AND #{endDate} … 第二个Sql Map文件: SELECT some_column, another_column FROM some_table

如何使用Ibatis返回带有插入内容的ID(使用RETURNING关键字)

我正在使用iBatis / Java和Postgres 8.3。 当我在ibatis中插入时,我需要返回id。 我使用下表来描述我的问题: CREATE TABLE sometable ( id serial NOT NULL, somefield VARCHAR(10) ); 序列sometable_id_seq通过运行create语句自动生成。 目前我使用以下sql map: INSERT INTO sometable ( somefield ) VALUES ( #value# ); SELECT last_value AS id FROM sometable_id_seq 看来这是检索新插入的id的ibatis方式。 Ibatis首先运行INSERT语句,然后询问序列的最后一个id。 我怀疑这将适用于许多并发插入。 ( 在这个问题中讨论过 ) 我想在ibatis中使用以下语句: INSERT INTO sometable ( somefield ) VALUES ( #value# ) RETURNING id; […]

来自HashMap的MyBatis参数

在mapper界面中我有: ArrayList select(@Param(“filterId”)int filterId, @Param(“filterData”)HashMap filterData); 在mapper xml中我有: SELECT … FROM …. WHERE id=#{filterData[“id”]} 没有错误,但结果不符合预期(它返回空集,但我知道具有这样的id的项目存在)。 #{filterData [“id”]}似乎不起作用。 我的错误在哪里?

如何在iBATIS中使用IN子句?

我正在使用iBATIS来创建select语句。 现在我想用iBATIS实现以下SQL语句: SELECT * FROM table WHERE col1 IN (‘value1’, ‘value2’); 使用以下方法,语句未正确准备且没有返回结果: SELECT * FROM table WHERE col1 IN #listOfValues#; iBATIS似乎重组了这个列表并尝试将其解释为字符串。 如何正确使用IN子句?

iBatis执行sql

有什么方法可以获得iBatis的执行查询吗? 我想重用UNION查询的查询。 例如: SELECT username, password FROM table WHERE id=#value# 当我执行查询时 int id = 1 List userList = queryDAO.executeForObjectList(“userSQLMap.getUser”,id) 我想获得SELECT username, password FROM table WHERE id=1 有什么方法可以得到查询吗? 谢谢。