ibatis 相关问题

iBatis是Java的对象关系映射框架。它使用XML描述符来桥接SQL查询和Java对象。为Microsoft .NET框架创建了一个官方端口。

ibatis和mybatis的区别

iBatis 和 myBatis 有什么区别?我在哪里可以找到这些的完美例子?请建议。我通过谷歌找不到这个问题的任何链接。

回答 3 投票 0

使用 MyBatis 和 Spring 在项目中记录 SQL 查询

在我的项目中我有 在我的项目中我有 <bean id="ABCSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="ABCDataSource" /> <property name="mapperLocations"> <list> <value>classpath:com/myco/dao/XYZMapper.xml</value> </list> </property> <bean> 和 log4j.logger.java.sql.Connection=debug, stdout, abclog log4j.logger.java.sql.PreparedStatement=debug, stdout, abclog log4j.logger.java.sql=debug, stdout, abclog log4j.logger.org.mybatis=debug, stdout, abclog log4j.logger.org.apache.ibatis=debug, stdout, abclog 当我在日志中运行应用程序时,我没有看到 SQL 查询 想知道我错过了什么 看到这篇文章如何为Mybatis配置log4j来打印我的SQL 建议更改 mybatis 类配置,但不知道如何使用 spring SqlSessionFactoryBean 引用how to configure logback for Mybatis to print my SQL的答案,我不确定这是否完全适合您。它提供了用于日志记录的 Spring 配置。这种方法对我有用。 记录特定 mybatis 映射器设置 DEBUG (TRACE 查看查询参数和结果)记录器级别完全 合格的映射者名称 <logger name="com.mycompany.myapp.mapper.MyMapper" level="DEBUG"/> 您可以记录来自所有映射器的所有 SQL 语句(如果它们位于 和这个一样的包 <logger name="com.mycompany.myapp.mapper" level="DEBUG"/> 如果问题仍然存在,请尝试一下。祝你好运! 您可以通过 mybatis-config.xml 为 Mybatis 添加日志记录。 像这样添加 log4j: mybatis-config.xml <configuration> <settings> ... <setting name="logImpl" value="LOG4J"/> ... </settings> </configuration> 然后在 log4j.properties 中添加您要记录的类: log4j.logger.org.mybatis.example.MyMapper=TRACE SQL 语句在 DEBUG 级别记录,因此将输出设置为 DEBUG: log4j.logger.org.mybatis.example=DEBUG 有关更多详细信息,请参阅文档。 另一个快捷方式是在 application.properties 文件中将 mybatis 映射器的调试级别设置为 true: logging.level.<packageName>.mapper=DEBUG 控制台或日志文件中打印的示例日志: 2020-03-03 09:41:27.057 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample : ==> Preparing: SELECT count(*) FROM MessageRecivers WHERE ((ReciverId = ? and ReadStats = ? and ReciverMessageFolder <> ?)) 2020-03-03 09:41:27.066 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample : ==> Parameters: 58(Long), 0(Short), 1(Short) 2020-03-03 09:41:27.473 DEBUG 10495 --- [io-50006-exec-1] c.f.t.d.m.M.countByExample : <== Total: 1 用最简单的方式配置进行测试并在日志中查看。然后自定义输出(例如文件、级别)。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd" > <log4j:configuration> <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p (%c.java:%L).%M - %m%n"/> </layout> </appender> <root> <priority value="TRACE" /> <appender-ref ref="STDOUT"/> </root> </log4j:configuration> 尝试将所有必要的行添加到您的配置中。 这是应该有效的示例: #configure root logger log4j.rootLogger=ERROR, file, stdout #configure all mybatis mappers logging log4j.logger.com.myco.dao=ERROR #configure your mapper logging log4j.logger.com.myco.dao.XYZMapper=DEBUG #configure appender log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 两种实现方式: 编辑logback.xml: <logger name="mapperPackageName" level="debug"/> 编辑应用程序.属性 logging.level.<mapperPackageName>=DEBUG mapperPackageName是Mapper类所在的包。 您可以通过在 main 方法中或创建连接工厂时的某个地方调用 LogFactory.useStdOutLogging(); [java 配置] 来配置它。

回答 7 投票 0

MySql.Data.MySqlClient.MySqlException:超时已过期

最近,我的网络应用程序中的特定页面抛出了 异常详细信息:MySql.Data.MySqlClient.MySqlException:超时 已到期。超时时间在完成之前已过

回答 4 投票 0

iBatis 解析 XPath '/sqlMapConfig/sqlMap' 时出错

我是ibatis新手。我喜欢将 SQLMapConfig 文件和 SQL 映射资源拆分为 2 个文件。但当我运行该项目时,它似乎显示错误。 下面是我的 2 个文件 SQL 映射。 SQLMapConfig.xml ...

回答 3 投票 0

如何传递多个参数并使用它们?

嗨,我是 myBatis 的新手。 我正在使用 MyBatis 和 Spring 以及 mybatis-spring。 如何传递两种不同类型的对象作为参数,以及如何在查询中使用它们的属性? 嗨,我是 myBatis 的新手。 我正在使用 MyBatis 和 Spring 以及 mybatis-spring。 如何将两种不同类型的对象作为参数传递,以及如何在查询中使用它们的属性? <update id="update" parameterType="A, B"> <!-- @@? --> UPDATE SOME WHERE x=A.x AND y=B.y <!-- @@? --> </update> 不要指定parameterType,但在映射器中的参数上使用@Param注释: @Mapper public interface MyMapper { void update(@Param("a") A a, @Param("b") B b); ... } 然后在映射中引用它们: <update id="update" > UPDATE SOME WHERE x=#{a.x} AND y=#{b.y} </update> 使用parameterType=“map”和@Param注释。 接口中声明的方法: void mapCategoryAndPage(@Param("categoryLocalId") Long categoryLocalId, @Param("pageLocalId") Long localId); @Param注解的值不要求必须等于参数名称 <insert id="mapCategoryAndPage" parameterType="map"> INSERT INTO category_page_mapping ( page_local_id, category_local_id) VALUES (#{pageLocalId}, #{categoryLocalId}); </insert> 您的另一个选择是,您还可以使用 DTO 携带多个参数供映射器使用,这实际上还不错,尤其是当 1 个 sql 有很多参数时。 这样,您就不需要担心参数名称,因为它们将被映射为与 DTO 中的字段名称相同。 示例: @Mapper public interface DummyItemMapper { void addDummyItem(DummyItemDto dummyItemDto); } <mapper namespace="xxx.mapper.DummyItemMapper"> <insert id="addDummyItem"> insert into dummy_item (dummy_item_id, dummy_item_name) values (#{dummyItemId}, #{dummyItemName}) </insert> </mapper>

回答 3 投票 0

OracleConnection 的 CreateOracleArray 始终在内部创建一个数组 null

我在使用 MyBatis 的 TypeHandler 中遇到问题。在调用我的过程之前调用的 setParamter 方法中,我创建了必须在 PreparedStatement 中设置的 java.sql.Array。去...

回答 0 投票 0

如何为 MyBatis 语句创建性能监听器

我想为 MyBatis 语句创建一种服务质量,一种全局性能监听器,它将分析所有已执行的 MyBatis 语句并记录那些返回太多的语句

回答 2 投票 0

IBatis2动态更新查询执行

我正在执行一组更新查询,这些查询是使用iBatis2在SQL Server上动态生成的。我在sqlMap中编写了以下更新元素,该元素在...

回答 1 投票 0

Oracle存储函数与查询联接

我想从两个表中检索数据。这两个表与外键引用相关。我有以下两种方法可以做到这一点。但不知道哪种方法更好。已存储的...

回答 1 投票 -1

用于自定义类型处理程序的iBatis缓存模型

我正在尝试使用缓存模型来缓存过程返回的结果。但是,每次我访问数据库时,它都会存储“ SERIALIZABLE NULL OBJECT”,而第二次访问数据库时,它表示缓存未命中...

回答 1 投票 0

多租户应用程序中的MyBatis spring

您需要在多租户应用程序中使用MyBatis spring的帮助。可以吗?特别是因为我看不到如何使用sqlSessionFactory配置“ MapperScannerConfigurer” ...

回答 3 投票 4

如何在Spring MVC中使用MyBatis / iBatis批注执行批量插入/更新操作

我正在尝试第一次执行批量插入/更新操作。我正在使用Mybatis注释(映射器)来执行与数据库相关的操作。我有一个@Param,它是List ] >>

回答 1 投票 0

mybatis不会在延迟获取时返回所有行

我的Java应用程序在使用mybatis(3.4.4)查询oracle后端时,在使用惰性加载时未返回所有行。本质上,当我使用某些SQL工具(例如oracle ...

回答 1 投票 0

Oracle XMLDB的XMLCAST和XMLQUERY与iBatis不兼容?

我一直在尝试从XMLType列中存储的XML中选择值列表,但我不断收到错误,这些错误列在本文的结尾。选择ID为getXMLFragment,并且...

回答 1 投票 1

尝试建立新连接时可抛出:null:javax.resource.ResourceException:无法创建连接

IJ000604:尝试获取新连接时可抛出:null:javax.resource.ResourceException:无法在org.jboss.jca.adapters.jdbc.local.LocalManagedConnectionFactory上创建连接。...

回答 1 投票 0

为MyBatis中的结果集的每一行创建一个单独的对象

我正在使用MyBatis查询数据库。我试图将结果分成不同的对象,但是MyBatis正在组合结果。我的意思是,当我尝试按以下说明映射结果时,得到了...

回答 1 投票 2

使用mybatis的结果图将对象收集到链接的哈希图中

我有两个表:employee_details(部门编号,employee_id)和skill_details(雇员编号,skill_id)。我想为每个department_id构造Employee_Details对象的LinkedHashMap,例如...

回答 1 投票 0

如何将条件放入myBatis datamapper.xml

这是我想要的 更新数据库集 count =(从数据库中选择max(count)个)+1

回答 1 投票 2

MyBatis:java.sql.SQLException:无效的java.sql.Types常量值-9传递给设置或更新方法

从MyBatis调用SqlServer中的Stored_Procedure时出现此错误:> ###查询数据库时出错。原因:java.sql.SQLException:无效的java.sql.Types常量值-9传递给...

回答 1 投票 0

在mybatis中传递数据库名称

我需要通过哈希图中的参数传递数据库名称。我的Mybatis XML是SELECT * FROM#{db} .CONTACT WHERE ...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.