大对象数据LOB的应用

当你有永不放弃的精神,全力以赴的态度,你会惊叹自己也能创造奇迹!

LOB数据类型概述
由于于无结构的数据往往都是大型的,存储量非常大,而LOB(large object)类型主要用来支持无结构的大型数据.
用户可以用LOB数据类型来存储大型的无结构数据,特别是文本,图形,视频和音频等多媒体数据,
系统还提供了随机访问这些LOB类型数据的有效办法,LOB数据类型主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。

LOB数据类型可以分为以下几种:
   BLOB:二进制LOB类型,用户存放无结构的二进制数据,最大4GB.
   CLOB:字符LOB类型,用于存放字符数据,最大可以存储4GB.
   NLOB:字符LOB类型,和CLOB相同,支持国家字符集.多字符集 GBK
   BFILE:二进制文件类型,与数据库外的操作系统文件相关联,该文件存储二进制大对象.

使用LOB类型数据的限制:
系统不支持分布式LOB,用户不能在SELECT子句或WHERE子句中使用远程LOB定位器,也不能在DBMS_LOB包的子程序中使用远程定位器,也不能引用包含LOB属性的远程表中的对象.
LOB列不能用于聚集表.
LOB列不能出现在查询语句的GROUP BY,ORDER BY ,DISTINCT(去重复)之后,也不允许出现在分组函数和连接函数中.
LOB类型不能出现在数组的定义中.
LOB类型不能够出现在建有分区索引的表中.
NCLOB类型不能作为对象类型的属性,当可以作为对象类型的方法的参数类型.

MySQL数据库对LOB类型数据的操作:

 1 CREATE DATABASE lob;
 2 
 3 USE lob;
 4 
 5 ALTER DATABASE lob DEFAULT CHARACTER SET=utf8;
 6 
 7 CREATE TABLE TEXTCLOB(
 8 
 9     CID INT NOT NULL PRIMARY KEY,
10 
11     CNAME VARCHAR(20),
12 
13     NOTES LONGTEXT
14 
15 );    
16 
17 SELECT * FROM TEXTCLOB;

JDBC连接数据库的主要步骤:

  1. Class.forName("com.mysql.jdbc.Driver");//反射 类对象 四种
    2.获取连接 Connection conn=DriverManager.getConnection(URL,USER,PASSWORD);
    3.编写SQL语句并发送 PrepapredStatement pstm=conn.prepareStatement(sql);
    4.获得数据库返回结果 (ResultSet rs) 增删改(int)
    5.关闭资源 public static void closeResource(Connection conn,PreparedStatement pstm,ResultSet rs)

代码示例:
  工具类:

 1 package com.papercy.jdbc;
 2 
 3 import java.sql.*;
 4 
 5 public class MySQLConnectionUtil {
 6     public static final String URL="jdbc:mysql://127.0.0.1:3306/lob?useUnicode=true&characterEncoding=utf8";
 7     public static final String USER="root";
 8     public static final String PWD="123456";
 9     public static final String Driver="com.mysql.jdbc.Driver";
10 
11     public static Connection connection()
12     {
13         Connection  connection=null;
14         try {
15             Class.forName(Driver);
16             connection= DriverManager.getConnection(URL,USER,PWD);
17             return connection;
18         } catch (SQLException e) {
19             e.printStackTrace();
20         } catch (ClassNotFoundException e) {
21             e.printStackTrace();
22         }
23         return connection;
24     }
25 
26     public static void close(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet)
27     {
28 
29             try {
30                 if(resultSet!=null)
31                 {
32                 resultSet.close();
33                 }
34                 if (preparedStatement!=null)
35                 {
36                     preparedStatement.close();
37                 }
38                 if (connection!=null)
39                 {
40                     connection.close();
41                 }
42             } catch (SQLException e) {
43                 e.printStackTrace();
44             }
45 
46     }
47 }

注:尽量设置为静态方法,封装。

2. 测试类(插入文本类型文件,插入图片,到数据库)

 1 package com.papercy.testlob;
 2 
 3 import com.papercy.jdbc.MySQLConnectionUtil;
 4 
 5 import java.io.File;
 6 import java.io.FileInputStream;
 7 import java.io.FileNotFoundException;
 8 import java.io.InputStream;
 9 import java.sql.Connection;
10 import java.sql.PreparedStatement;
11 import java.sql.SQLException;
12 
13 public class TestLob {
14     public static void main(String[] args) {
15      
16         Connection connection=MySQLConnectionUtil.connection();
17 
18         String sql="INSERT INTO testLob(number,notes,imgtext) VALUES(?,?,?)";
19 
20         PreparedStatement preparedStatement=null;
21 
22         try {
23 
24             preparedStatement=connection.prepareStatement(sql);
25 
26             preparedStatement.setInt(1,20);
27 
28             preparedStatement.setString(2,"demo.txt");
29 
30             File file=new File("dyyandwht.jpg");
31 
32             InputStream inputStream=new FileInputStream(file);
33 
34             preparedStatement.setAsciiStream(3,inputStream);
35 
36             int update=preparedStatement.executeUpdate();
37 
38             if(update>0)
39             {
40                 System.out.println("数据插入成功");
41             }
42             else
43                 System.out.println("数据插入失败");
44 
45         } catch (SQLException e) {
46 
47             e.printStackTrace();
48 
49         } catch (FileNotFoundException e) {
50 
51             e.printStackTrace();
52 
53         }
54         finally {
55 
56             MySQLConnectionUtil.close(connection,preparedStatement,null);
57 
58         }
59 
60     }
61 }
62     

END

PS:

如果,您希望更容易地发现我的新博客,不妨点击一下关注。
如果你觉得本篇文章对你有所帮助,请给予我更多的鼓励,
因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【肥肥也】!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348