《Java EE核心框架实战》—— 2.7 插入超大的字符串文本内容

2.7 插入超大的字符串文本内容

MyBatis框架也支持Oracle的CLOB,不需要特别的环境配置即可完成对CLOB字段的操作。

创建名为bigCLOB的Web项目,映射文件userinfoMapping.xml的代码如下。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">
<mapper namespace="mybatis.testcurd">
 <insert id="insertBigString" parameterType="map">
  <selectKey keyProperty="id" order="BEFORE" resultType="java.lang.Long">
   select idauto.nextval from dual
  </selectKey>
  insert into bigclob(id,bigstring) values(#{id},#{bigstring})
 </insert>
 <select id="selectById" resultType="map">
  select * from bigclob where
  id=10000
 </select>
</mapper>```
创建名为test的Servlet,核心代码如下。

public class test extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
try {
SqlSession sqlSessionRef = GetSqlSession.getSqlSession();
Map map = sqlSessionRef.selectOne("selectById");
Clob clobRef = (Clob) map.get("BIGSTRING");
Reader reader = clobRef.getCharacterStream();
BufferedReader brRef = new BufferedReader(reader);
char[] charArray = new char[2048];
int readLength = brRef.read(charArray);
while (readLength != -1) {

String bigString = new String(charArray, 0, readLength);
System.out.println(bigString);
readLength = brRef.read(charArray);

}
Map insertMap = new HashMap();
insertMap.put("id", 20000);
insertMap.put("bigstring", clobRef);
sqlSessionRef.insert("insertBigString", insertMap);
sqlSessionRef.commit();
sqlSessionRef.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}`
默认情况下Oracle数据表中有一条包含50万行的CLOB字段,如图2-11所示。

程序运行后,在控制台输出了最后一行信息,如图2-12所示。

数据表中还插入了另外一条50万行的记录,如图2-13所示。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-07-31 00:25:25

《Java EE核心框架实战》—— 2.7 插入超大的字符串文本内容的相关文章

《Java EE核心框架实战》—— 导读

前言 从近几年用人单位对人才招聘的要求来看,越来越趋向于"实战性",也就是要求新入职的员工能立即融入团队,迅速上手项目开发,快速创造经济利益. 多年以来,我一直从事与软件开发相关的工作.我的很多学员建议我写一本内容精悍而又不失实用价值的主流Java EE开源框架图书,使其只包含主流框架最重要.最核心.最常用的内容.这样他们就可以尽快上手,可以自行在工作和学习中不断拓展和深掘.这也是我写作本书的主要目的. 的确,他们的建议非常有道理,因为Java EE世界非常庞大,市面上没有任何一本书能

《Java EE核心框架实战》—— 2.5 将SQL语句作为字符串变量传入

2.5 将SQL语句作为字符串变量传入 Java EE核心框架实战 在MyBatis中也支持将SQL语句当成变量传入. 新建名为sqlStringVar的Java项目,映射文件userinfoMapping.xml的内容如下. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" &

《Java EE核心框架实战》—— 2.6 动态SQL的使用

2.6 动态SQL的使用 MyBatis框架还支持动态SQL标签的使用,而且某些标签的使用率还非常高. 2.6.1插入null值时的处理第1种方法-jdbcType 创建名为dynSqlTest的Web项目,创建名为test1的Servlet对象,核心代码如下. public class test1 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) t

《Java EE核心框架实战》—— 2.3 &lt; resultMap &gt;标签

2.3 < resultMap >标签 如果数据表中字段的名称和Java实体类中属性的名称不一致,就要使用< resultMap>标签来进行映射. 创建名为resultMapTest的Java项目,映射配置文件userinfoMapping.xml代码如下. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org

《Java EE核心框架实战》—— 2.4 &lt; sql &gt;标签

2.4 < sql >标签 重复的SQL语句永远不可避免,< sql>标签就是用来解决这个问题的. 创建名为sqlTest的Java项目,映射配置文件userinfoMapping.xml的代码如下. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" &q

《Java EE核心框架实战》—— 2.1 MyBatis 3的SQL映射 文件

2.1 MyBatis 3的SQL映射 文件 因为MyBatis框架是基于SQL映射的,所以SQL映射文件在此框架中的位置非常重要,但好在SQL映射文件非常简单.本章将介绍SQL映射文件的具体内容及实例使用. 本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.

《Java EE核心框架实战》—— 第2章 MyBatis 3常用技能

第2章 MyBatis 3常用技能 本章是MyBatis框架扩展的章节,本章的内容在使用MyBatis框架时一定会用到,尤其是动态SQL在使用MyBatis框架时较为常用,在本章中读者应该着重掌握如下内容: 使用Properties对象连接数据库. 动态SQL中要使用的标签. 动态SQL中对null值的处理. 对超大字符串及分页的处理. 本文仅用于学习和交流目的,不代表异步社区观点.非商业转载请注明作译者.出处,并保留本文的原始链接.

《Java EE核心框架实战》—— 2.8 分页

2.8 分页 MyBatis还支持分页功能,创建名为pageTest的Web项目. 数据表userinfo中的记录内容如图2-14所示. 映射文件的配置代码如下. <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd"&

jsf-有没有《经典Java EE企业应用实战》的光盘内容?

问题描述 有没有<经典Java EE企业应用实战>的光盘内容? 有没有<经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发> 的光盘内容? 解决方案 http://down.51cto.com/data/1150461 解决方案二: http://vdisk.weibo.com/s/uamgkixENqRy3