- <select id="selectUserInfoClobById" parameterType="String" resultType="userInfo">
- select * from userinfo where userid=#{id}
- select>
[java] view
plain copy
- @Test
- public void testSelect() {
- try {
- String id = "clob";
- UserInfoDao userInfo = sqlSession.getMapper(UserInfoDao.class);
- UserInfo re = userInfo.selectUserInfoClobById(id);
- byte[] buff=new byte[]{};
- buff=re.getCv().getBytes();
- FileOutputStream out=new FileOutputStream("C://Temp/out.txt");
- out.write(buff,0,buff.length);
- out.close();
- System.out.println(re);
- sqlSession.commit();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-------------------------------------------------------------------------------------------------------------------------------------------------------
【注释】
1.从上面的示例中,我们发现对于大文本文件的存储,实际上跟String的存储过程十分相似。在一般场景下,我们可以使用char,varchar达到我们的目的。
2.上面示例的方法内有关于文件读写的方法, 请各位看官在实际应用中严格按照文件的读写规范来编写。
3.在实际应用中,大量的文件最好不要存储在数据库中,推荐的做法是:将文件单独的存储在文件系统,数据库中保存路径即可。这样能够使得数据库的单表体积迅速降低,提高CRUD的效率。但是,如果确实存在需要将大文本存储在数据库中,也建议采取分表措施,即主体的其他信息是一张表,文本信息是一张表,再通过主外键等方法确定关联关系即可。上面的例子只是为了说明读写的操作步骤,从设计上,是非常不推荐的。请特别留意。
4.最后,看看各个数据库中各个文本类型的长度范围,如下: