标签: ibatis

如何使用iBatis for Java实现继承?

给我一个例子!iBatis文档不包括此内容.我整个上午一直在努力让我的鉴别器和子地图工作!

java inheritance ibatis

2
推荐指数
1
解决办法
4458
查看次数

使用非公司批准的第三方软件库

无论如何在你的应用程序中使用第三方库/框架(spring/ibatis)是不道德的,即使你被告知需要花费很长时间才能批准,你可以不做任何事情吗?

spring ibatis

2
推荐指数
2
解决办法
183
查看次数

ibatis输入/输出参数问题

谁能告诉我什么是错的?我有两个程序和两个映射.一个工作正常,另一个失败.这个工作正常:

    <parameterMap id="mapping-descriptions" class="java.util.Map">
        <parameter property="id" javaType="java.lang.Long" jdbcType="NUMBER" mode="IN"/>
        <parameter property="lang" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN"/>
        <parameter property="shortDesc" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
        <parameter property="fullDesc" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT"/>
    </parameterMap>
<procedure id="get-description"
        parameterMap="mapping-descriptions">
        {call COM_DESCRIPTION_PKG.get_desc(?,?,?,?)}
</procedure>
Run Code Online (Sandbox Code Playgroud)

这个失败了:

    <parameterMap id="mapping-description-modifiable" class="java.util.Map">
        <parameter property="id" javaType="java.lang.Long" jdbcType="NUMBER" mode="INOUT"/>
        <parameter property="lang" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN"/>
        <parameter property="shortDesc" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN"/>
        <parameter property="fullDesc" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN"/>
        <parameter property="modify" javaType="boolean" jdbcType="NUMBER" mode="IN"/>
    </parameterMap>
<procedure id="add-description"
        parameterMap="mapping-description-modifiable">
        {call COM_DESCRIPTION_PKG.add_desc(?,?,?,?,?)}
</procedure>
Run Code Online (Sandbox Code Playgroud)

有这个例外:

--- The error occurred while executing update procedure.  
--- Check the {call …
Run Code Online (Sandbox Code Playgroud)

java ibatis out-parameters

2
推荐指数
1
解决办法
1万
查看次数

如何在IntelliJ IDEA中加载xml文件

IntelliJ找不到sources文件夹下的xml文件.

例子)src/net/saltfactory/domain/PersonSqlMap.xml

但是,如果我复制它并过去文件夹,IntelliJ会找到xml文件

例子)out/net/saltfactory/domain/PersonSqlMap.xml

我希望不要将XML文件复制并过去到文件夹中

帮我

xml spring load ibatis intellij-idea

2
推荐指数
1
解决办法
5644
查看次数

通过MyBatis中的参数设置FROM子句

我没有在文档中看到任何与我的问题有关的内容,在部署它时,我的应用程序运行不正常(更多内容在一秒内).我想做点什么

<select id="getLookupRows" parameterType="map" resultMap="lookupMap">
   select id, name, active, valid
   from #{table}
</select>
Run Code Online (Sandbox Code Playgroud)

在MyBatis.我有许多具有共享列的查找表,因此视图级别的用户确定最终使用哪个查找表.我尝试执行getLookupRows时得到的错误是

Cause: org.apache.ibatis.executor.ExecutorException: There was no TypeHandler found for parameter table of statement info.pureshasta.mapper.LookupMapper.getLookupRows
org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:77)
org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:69)
org.apache.ibatis.binding.MapperMethod.executeForList(MapperMethod.java:85)
org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:65)
org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:38)
$Proxy15.getLookupRows(Unknown Source)
info.pureshasta.service.FieldTitleService.getLookupRows(FieldTitleService.java:33)
Run Code Online (Sandbox Code Playgroud)

我的mapper界面如下:

List<Lookup> getLookupRows(@Param("specificColumn") String specificColumn, 
                           @Param("table") String table);
Run Code Online (Sandbox Code Playgroud)

所以我们知道我正在尝试将String传递给此查询,没什么特别的.我有专门的专栏,因为这将是我的下一个任务.实际上每个查找表的其中一列是唯一的,因此我必须调用相应的specificColumn,但如果我能使table参数和FROM子句工作,我会非常高兴.

ibatis dynamic-queries mybatis

2
推荐指数
1
解决办法
8898
查看次数

iBATIS 2.3.x是否支持foreach标签?

我有一个使用iBATIS 2.3.x的个人网站。最近,我在网站上添加了复杂的搜索功能,需要通过对象列表来查询数据,例如:

public Class PromotionAttribute {
    String attributeName;
    String attributeValue;
}
Run Code Online (Sandbox Code Playgroud)

查询看起来像:

select p.* from promotions p
join promotion_attributes pa on p.id=pa.id
where 
<foreach item="PromotionAttribute" index="index" collection="list" open="(" separator=" or " close=")">
pa.attribute_name=#{attributeName} and pa.attribute_value=#{attributeValue}#
</foreach>
Run Code Online (Sandbox Code Playgroud)

对于上面的查询,这只是一个伪代码,因为我没有使用更高版本的iBATIS,其含义是我想生成一个动态查询条件。

我的问题是:我不确定iBATIS 2.3.x是否支持“ foreach”标签,如果不支持,如何实现这种查询?

谢谢你水清

java ibatis

2
推荐指数
1
解决办法
3099
查看次数

将Hibernate切换到iBatis

目前我们使用Hibernate作为JPA的持久提供程序.以后可以像iBatis一样更改.如果我们改变我需要考虑的事情是什么?

orm hibernate jpa ibatis

2
推荐指数
1
解决办法
1389
查看次数

Hibernate,iBatis,Spring JDBC模板,哪一个使用?

我正在开发一个java的Web应用程序.我正在考虑使用Spring MVC.但在ORM方面,我有决定.我研究过像Hibernate,iBatis,Spring JDBC Template等ORM.

我发现iBatis和Spring JDBC Template(使用RowMapper)几乎相同,您可以将每个查询映射到一个对象.所以你必须为每个查询编写一个类.

在Hibernate中,您使用类映射每个表.它减少了编写SQL的需要.

我猜Hibernate在你不擅长SQL时更受欢迎.在我的情况下,我对SQL非常熟悉,所以想要使用iBatis或Spring JDBC Template,它可以让我很好地控制SQL,而且这些都不如Hibernate复杂.

但是Hibernate提供了其他ORM不提供的缓存.

所以我的问题:

  1. 在iBatis和Spring JDBC Template之间使用哪一个?
  2. Hibernate缓存(或任何其他我不知道的Hibernate功能)是如此之好,以至于我应该使用Hibernate而不是其他ORM?

orm spring hibernate ibatis

2
推荐指数
1
解决办法
6296
查看次数

如何通过iBatis防止UPDATE中的并发问题

我们的Java EE Web应用程序使用iBatis(ORM)执行数据库操作.数据库操作流程如下

流程:JSP ---> Action ---> ServiceIMpl ---> DaoImpl ---->通过'IBatis调用更新查询

注意:Action,Service和DAO类使用Spring 2.5的依赖注入技术进行实例化.我们使用Struts2.

问题:2个并发用户搜索相同的记录,User1更新Attribute1,而User2更新Attribute2.User1首先点击"保存",然后User2点击保存(它们相互跟随,差几秒).当我们在数据库中看到数据时,只存在User1的更新.审核列还仅显示User1的更新.User2对Attribute2的更新未完成,同时不会抛出异常.

我们尝试在iBatis中使用begin transaction和commit transaction来围绕sqlmap xml中定义的更新查询的调用.同样的问题仍然存在.我们还尝试删除这些事务命令,但问题仍然存在.

我们应该在更新期间做任何特殊/不同的事情来处理并发吗?像iBatis这样的ORM不会自己处理吗?

附加信息:进一步调查显示以下信息.

当User1和User2单击某条记录时,将获取完整的数据以供查看.

现在,当User1和User2都更改了少量属性并单击save(并发)时,首先更新User1的数据,然后在更新User2的数据时,User1的已更新数据被覆盖并丢失.

What approach is usually followed in such screens to handle such scenarios ?

concurrency spring ibatis struts2

2
推荐指数
1
解决办法
1万
查看次数

如何在mybatis中的结果映射中返回具有空值的列

<select id="keyEquipmentShiftAutomatedModelData" parameterType="java.util.Map" resultType="java.util.Map">
SELECT  ID, SUM(VALUE1 + VALUE2) Total
FROM    tableName
GROUP   BY ID
    </select>

Returns below result in sql

ID, Total
1   (null)
Run Code Online (Sandbox Code Playgroud)

但是当在Map中返回结果时,myBatis返回{ID = 1},其中Total缺失.如何将带有null的列添加到结果集中以及类似这样的内容{ID = 1,Total = null}或类似这样的内容{ID = 1,Total =""}

java orm ibatis mybatis

2
推荐指数
1
解决办法
3656
查看次数