查询语句:
<select id="selectJingHuaBlogArticleCount" resultMap="result_JingHuaBlog" >
<![CDATA[
select * from (
SELECT a.article_id,a.class_id,a.article_title,a.article_content,c.class_name,l.member_register_id,l.member_register_pic,l.member_register_okno
FROM article a,ARTICLE_CLASS c,login_information l
WHERE a.class_id=c.class_id AND a.member_register_id=l.member_register_id AND a.pick=1 and a.auth=1
)ttt where rownum < $count$
]]>
</select>
映射的结果对象:
<resultMap class="article" id="result_JingHuaBlog">
<result column="article_id" property="articleId" />
<result column="article_content" property="articleContent"/>
<result column="class_id" property="articleClass.classId" />
<result column="class_name" property="articleClass.className" />
<result column="article_title" property="articleTitle" />
<result column="member_register_pic" property="loginInformation.memberRegisterPic" />
<result column="member_register_okno" property="loginInformation.memberRegisterOkno" />
<result column="member_register_Id" property="loginInformation.memberRegisterId" />
</resultMap>
是使用iBatis操作oracle数据库时,当你的字段类型为LONG类型的时候,查询出结果的时候会报流已经被关闭,这个问题困扰了我好几个小时,使用最基本的JDBC
对Oracle.Long型可以直接通过ResultSet.getString()读写的,一直就想不通为什么?我知道无论是LONG,CLOB还是BLOB实际上都只是resultset拿一个定位符,LONG和CLOB
就会在getString时侯打开一个流由JDBC转换成String;如果再次读同一个定位符就会得到这个"流已经关闭"的错误信息。不过,我就是检查
来检查去,无论如何发现不了重复执行两次get同一字段的代码。
一直到我使用一个检测代码执行同样的取值时,发现如果在一行resultset中先读其他列然后再读这个Long列就会出同样
的错误。所以只要把上面的结果映射的
<result column="article_content" property="articleContent"/>
拿到最前面就一切正常,但是还是不明白为什么?
分享到:
相关推荐
这些SQL语句主要用于Oracle数据库中,涉及到了删除、插入以及查询等基本操作,并且在ibatis框架中实现了参数化处理。 ### 一、删除操作 首先我们来看第一条SQL语句: ```xml parameterClass="long"> delete ...
此时可以在实体类中定义两个属性,一个是原始的数据库字段类型,另一个是业务逻辑所需的类型,并提供对应的Getter/Setter方法来完成数据的转换。 ```java public class Bean { private Money price = null; ...
在本文中,我们将深入探讨如何在SpringBoot应用中集成并使用MyBatis Plus。MyBatis Plus(简称MP)是一个强大的MyBatis扩展,它简化了数据库操作,提供了丰富的CRUD(创建、读取、更新、删除)功能,以及一些实用的...
id、rowid、rownum的区别:id通常是主键字段的名称,rowid是Oracle数据库中每行数据的唯一标识,rownum是查询结果集中行的编号。 主键和唯一索引的区别:主键用于标识表中的每一行,唯一索引则是保证列中值的唯一性...
### Spring Boot与MyBatis-Plus整合详解 #### 一、MyBatis-Plus概述 MyBatis-Plus(简称MP)是MyBatis的一个...通过上述步骤,我们可以在Spring Boot项目中顺利地集成并使用MyBatis-Plus,从而实现高效的数据库操作。
- **java.sql**: 用于连接和操作数据库。 ##### Get和Post的区别 - **GET**:主要用于获取资源,将数据附在URL之后,安全性较低,但传输速度快。 - **POST**:用于向服务器发送数据,数据放置在HTTP包的正文中,更...
对于 Oracle 数据库,使用 `selectKey` 元素可以获取 sequence 的值,示例代码如下: ```xml <insert id="insertUser" parameterClass="ibatis.User"> <selectKey resultClass="long" keyProperty="id"> select ...
5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用最...
5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用最...
5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用最...
5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用最...
5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 9 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 9 7、char型变量中能不能存贮一个中文汉字?为什么? 9 8、用...
- **java.sql**:为SQL数据库访问提供API支持。 ##### Get和Post的区别 - **GET**:数据作为URL的一部分发送,安全性较低,适合于传输小量数据。 - **POST**:数据通过请求体发送,不显示在URL中,适合传输大量或...
创建与数据库表对应的实体类,例如`User.java`,包含与数据库字段相对应的属性和getter/setter方法。 5. **编写Mapper接口** 创建Mapper接口,比如`UserMapper.java`,定义需要执行的SQL语句。这些方法名会与XML...