-
mybatis怎么读取oracle xmltype类型的数据0
1、oracle 用的是字段类型是xmltype
BOOK_ID NUMBER
BOOK_NAME XMLTYPE
BOOK_PRICE NUMBER
2、JavaBean对应的属性是Object
private Integer bookId;
private Object bookName;
private Integer bookPrice;
3、mapper.xml 对应jdbcType=CLOB
<resultMap id="BaseResultMap" type="com.zfy.db.model.Book" >
<result column="BOOK_ID" property="bookId" jdbcType="INTEGER" />
<result column="BOOK_PRICE" property="bookPrice" jdbcType="INTEGER" />
</resultMap>
<resultMap id="ResultMapWithBLOBs" type="com.zfy.db.model.Book" extends="BaseResultMap" >
<result column="BOOK_NAME" property="bookName" jdbcType="CLOB" />
</resultMap>
<!-- 获取Book -->
<select id="selectById" resultMap="ResultMapWithBLOBs">
select BOOK_ID, BOOK_PRICE, BOOK_NAME from book where book_id = #{bookId,jdbcType=INTEGER}
</select>
4、junit 测试报错
static SqlSession session = null;
@BeforeClass
public static void before() throws IOException{
String resource = "mybatis-config.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
session = sessionFactory.openSession();
}
@Test
public void selectById() {
BookMapper mapper= session.getMapper(BookMapper.class);
Book book = mapper.selectById(1);
System.out.println(book);
}
5、报错信息如下
java.lang.NoClassDefFoundError: oracle/xml/binxml/BinXMLException
at oracle.xdb.XMLTypeFactory.create(XMLTypeFactory.java:73)
at oracle.sql.OPAQUE.toClass(OPAQUE.java:376)
at oracle.sql.OPAQUE.toJdbc(OPAQUE.java:318)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:144)
at oracle.jdbc.driver.NamedTypeAccessor.getObject(NamedTypeAccessor.java:100)
at oracle.jdbc.driver.OracleResultSetImpl.getObject(OracleResultSetImpl.java:921)
at oracle.jdbc.driver.OracleResultSet.getObject(OracleResultSet.java:1503)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.ibatis.logging.jdbc.ResultSetLogger.invoke(ResultSetLogger.java:59)
at sun.proxy.$Proxy13.getObject(Unknown Source)
at org.apache.ibatis.type.ObjectTypeHandler.getNullableResult(ObjectTypeHandler.java:34)
at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:51)
at org.apache.ibatis.type.UnknownTypeHandler.getNullableResult(UnknownTypeHandler.java:49)
at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:51)
at org.apache.ibatis.executor.resultset.FastResultSetHandler.getPropertyMappingValue(FastResultSetHandler.java:325)
at org.apache.ibatis.executor.resultset.FastResultSetHandler.applyPropertyMappings(FastResultSetHandler.java:306)
at org.apache.ibatis.executor.resultset.FastResultSetHandler.getRowValue(FastResultSetHandler.java:275)
at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleRowValues(FastResultSetHandler.java:221)
at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSet(FastResultSetHandler.java:193)
at org.apache.ibatis.executor.resultset.FastResultSetHandler.handleResultSets(FastResultSetHandler.java:159)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:57)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:59)
at sun.proxy.$Proxy10.query(Unknown Source)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:57)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:259)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:132)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:105)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:81)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:98)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:62)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43)
at sun.proxy.$Proxy9.selectById(Unknown Source)
at com.zfy.controller.test.ControllerTest.selectById(ControllerTest.java:267)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:45)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: java.lang.ClassNotFoundException: oracle.xml.binxml.BinXMLException
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 67 more
2013年6月03日 10:05
目前还没有答案
相关推荐
2. **MyBatis的配置**:MyBatis的配置文件(mybatis-config.xml)通常包含数据源配置、事务管理器配置以及Mapper扫描配置。在SpringBoot项目中,这些配置可以通过@Configuration注解的类来实现,例如设置数据源...
本实例将指导你如何使用MyBatis连接Oracle数据库,并在Oracle中创建一个名为`test`的表。 首先,确保你已经安装了Eclipse集成开发环境、JDK、Oracle数据库以及MyBatis框架。Oracle数据库需要设置相应的环境变量,如...
本配置示例将详细介绍如何在Spring Boot中整合MyBatis与Oracle数据库,并配置两个不同的数据源。 首先,我们需要理解数据源(DataSource)的概念。数据源是Java应用程序与数据库之间的桥梁,它负责管理数据库连接,...
Mybatis 处理 CLOB、BLOB 类型数据 MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis ...通过使用 MyBatis 处理 CLOB 和 BLOB 类型数据,可以方便地存储和读取大字段类型的数据,提高应用程序的性能和可扩展性。
本文将深入探讨如何在Spring Boot项目中整合MyBatis,实现调用Oracle存储过程并处理游标返回的数据。 首先,我们需要在Spring Boot项目中引入相关的依赖。在`pom.xml`文件中添加Oracle JDBC驱动(ojdbc66-oracle...
"解决mybatis使用char类型字段查询oracle数据库时结果返回null问题" 在使用mybatis框架对Oracle数据库进行查询操作时,如果使用char类型字段作为查询条件,可能会出现结果返回null的问题。这种情况下,需要对char...
它可能包含了创建数据表、配置MyBatis的XML映射文件、编写Java DAO层以及实体类等相关步骤,以实现对Oracle数据库的基本CRUD(创建、读取、更新、删除)操作。 【标签】"mybatis"是Java领域内广泛使用的持久层框架...
- **特性**:强大的数据管理能力,支持复杂的数据类型,ACID事务,多版本并发控制,强大的备份和恢复机制。 - **在项目中的作用**:作为后端数据存储,保存并处理由SpringBoot和Mybatis操作的所有数据。 项目中的...
本文将详细探讨如何使用Java的JDBC和MyBatis框架来处理Oracle中的XMLType数据。 首先,XMLType在Oracle数据库中是一个非常强大的数据类型,它不仅能够存储XML数据,而且还提供了丰富的操作XML的功能。由于XMLType是...
本知识点将详细介绍如何在Idea中配置Maven、Spring Boot、MyBatis以及Oracle数据库,实现一个完整的Java Web项目架构。 **一、配置Maven** 1. **安装Maven**: 首先确保你的系统中已经安装了Maven,可以在命令行...
在本项目中,Oracle作为数据存储的后端,与Spring MVC和MyBatis进行交互,完成数据的增删改查操作。 **Web实现**: 在Web层面上,项目可能使用了HTML、CSS和JavaScript等技术构建用户界面,并通过HTTP协议与服务器...
在实际开发中,将 MyBatis 整合到 Oracle 数据库进行数据操作,包括增删改查,是常见的需求。以下将详细介绍这个过程。 1. **环境准备** - **Oracle 数据库**:首先确保你已经安装并配置了 Oracle 数据库,创建好...
基于springboot+mybatis+oracle的校园闲置物品交易系统源码(高分毕设).zip 基于springboot+mybatis+oracle的校园闲置物品交易系统源码(高分毕设).zip 基于springboot+mybatis+oracle的校园闲置物品交易系统源码...
JAVA SpringMVC+mybatis(oracle 和 mysql) HTML5 后台框架 bootstrap.docxJAVA SpringMVC+mybatis(oracle 和 mysql) HTML5 后台框架 bootstrap.docxJAVA SpringMVC+mybatis(oracle 和 mysql) HTML5 后台框架 ...
MyBatis-Oracle逆向工程工具是一款高效实用的开发辅助软件,专为使用MyBatis框架和Oracle数据库的开发者设计。这款工具的核心功能是自动生成与数据库表结构对应的MyBatis映射文件、实体类以及DAO接口,极大地提高了...
在使用MyBatis与Oracle数据库进行交互时,通常需要一些特定的库来确保连接和操作的顺利进行。这里提到的两个jar包,"ojdbc6.jar"和"mybatis-3.4.4.jar",正是实现这一目的的关键组件。 首先,"mybatis-3.4.4.jar"是...
本篇将详细讲解如何在Spring Boot项目中结合Mybatis和Druid实现多数据源配置,以支持Oracle和MySQL两种数据库,并进行数据库的分离调试。 首先,我们要理解Spring Boot的自动配置机制。Spring Boot通过扫描`@...
在Oracle数据库中,BLOB(Binary Large Object)字段是用来存储大量二进制数据的类型,如图片、视频或任何非文本文件。与之相对的是CLOB(Character Large Object),用于存储大量的文本数据。在Java应用中,特别是...
标题中的“http接口返回json,springmvc+mybatis+oracle”揭示了这是一个使用SpringMVC作为Web层框架,MyBatis作为数据访问层框架,并且与Oracle数据库进行交互的项目。接下来,我们将深入探讨这些技术及其在实际...