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


  • LOB数据类型概述

由于于无结构的数据往往都是大型的,存储量非常大,而LOB(large object)类型主要用来支持无结构的大型数据.

用户可以用LOB数据类型来存储大型的无结构数据,特别是文本,图形,视频和音频等多媒体数据,

系统还提供了随机访问这些LOB类型数据的有效办法,LOB数据类型主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据。

  • LOB数据类型可以分为以下几种:

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

  

  • 使用LOB类型数据的限制:

  1. 系统不支持分布式LOB,用户不能在SELECT子句或WHERE子句中使用远程LOB定位器,也不能在DBMS_LOB包的子程序中使用远程定位器,也不能引用包含LOB属性的远程表中的对象.
  2. LOB列不能用于聚集表.
  3. LOB列不能出现在查询语句的GROUP BY,ORDER BY ,DISTINCT(去重复)之后,也不允许出现在分组函数和连接函数中.
  4. LOB类型不能出现在数组的定义中.
  5. LOB类型不能够出现在建有分区索引的表中.
  6. 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.   工具类:
 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:

如果,您希望更容易地发现我的新博客,不妨点击一下关注。

如果你觉得本篇文章对你有所帮助,请给予我更多的鼓励,

因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【肥肥也】!

大对象数据LOB的应用(Day_10)的更多相关文章

  1. 大对象数据LOB的应用

    概述 由于无结构的数据往往都是大型的,存储量特别大,而LOB(large object)类型主要用来支持无结构的大型数据. 用户可以利用LOB数据类型来存储大型的无结构数据,特别是文本,图形,视频和音 ...

  2. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 概述 LOB 代表大对象数据,包括 BLOB 和 CL ...

  3. Oracle数据库中的大对象(LOB)数据类型介绍

    一.LOB数据类型的介绍 大对象(LOB)数据类型允许我们保存和操作非结构化和半结构化数据,如文档.图形图像.视频片段.声音文件和XML文件等.DMBS_LOB 包被设计用于操作 LOB 数据类型.从 ...

  4. Statement和PreparedStatement的特点 MySQL数据库分页 存取大对象 批处理 获取数据库主键值

    1 Statement和PreparedStatement的特点   a)对于创建和删除表或数据库,我们可以使用executeUpdate(),该方法返回0,表示未影向表中任何记录   b)对于创建和 ...

  5. JavaEE JDBC 读写LOB大对象

    JDBC 读写LOB大对象 @author ixenos LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其他数据, 在SQL中,二进制(字节型)大对象称为BLOB,字符型大 ...

  6. Oracle LOB 大对象处理

    LOB类型列主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据. 一.LOB数据类型分类 1.按存储数据的类型分: ①字符类型:   CLOB:存储大量 单字节 字符数据.   N ...

  7. [转帖]Oracle数据库lob大对象数据类型字段总结,值得收藏

    Oracle数据库lob大对象数据类型字段总结,值得收藏 原创 波波说运维 2019-07-11 00:02:00 https://www.toutiao.com/i67108943269703357 ...

  8. BLOB:大数据,大对象,在数据库中用来存储超长文本的数据,例如图片等

    将一张图片存储在mysql中,并读取出来(BLOB数据:插入BLOB类型的数据必须使用PreparedStatement,因为插入BLOB类型的数据无法使用字符串拼写): -------------- ...

  9. Hibernate 中 联合主键映射 组合关系映射 大对象映射(或者说文本大对象,二进制数据大对象)

    Clob:文本大对象,最长4G Blob:二进制数据大对象,最长4G util: public class HibUtil { private static SessionFactory sessio ...

随机推荐

  1. 华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数

    摘要:高斯Redis,计数的最佳选择! 一.背景 当我们打开手机刷微博时,就要开始和各种各样的计数器打交道了.我们注册一个帐号后,微博就会给我们记录一组数据:关注数.粉丝数.动态数-:我们刷帖时,关注 ...

  2. 如何在CSS中映射的鼠标位置,并实现通过鼠标移动控制页面元素效果

    映射鼠标位置或实现拖拽效果,我们可以在 JavaScript 中做到这一点.但实际上,在CSS中有更加简洁的方法,我们可以在不使用JavaScript 的情况下,仍然可以实现相同的功能! 只使用CSS ...

  3. RPC理论介绍

    目录 RPC概述 RPC是什么 和本地调用有什么区别 RPC模式 RPC的三个过程 为什么要使用RPC RPC和其他协议的区别 RPC使用场景 RPC的流程 RPC核心概念术语 RPC协议 RPC框架 ...

  4. 【luogu P3803】【模板】多项式乘法(FFT)

    [模板]多项式乘法(FFT) 题目链接:luogu P3803 题目大意 给你两个多项式,要你求这两个多项式乘起来得到的多项式.(卷积) 思路 系数表示法 就是我们一般来表示一个多项式的方法: \(A ...

  5. 让vim显示空格,tab字符,及vim多行注释

    1.显示 TAB 键 文件中有 TAB 键的时候,你是看不见的.要把它显示出来: :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里 ...

  6. ajax异步登录

    以下是ajax代码示例: HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  7. hdu4772 水模拟

    题意:       给你两个矩阵,问你两个矩阵的最大相同元素个数(位置也要求相同),矩阵可以90旋转多次. 思路:       水题,直接模拟就行了,方法很多,可以直接写坐标关系,或者一层一层处理,就 ...

  8. 【maven】Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (default-site)

    问题描述 site一点击就报错,如下 Failed to execute goal org.apache.maven.plugins:maven-site-plugin:3.3:site (defau ...

  9. JavaScript 原始值与包装对象

    前言 随着 JavaScript 越来越流行,越来越多地开发者开始接触并使用 JavaScript. 同时我也发现,有不少开发者对于 JavaScript 最基本的原始值和包装对象都没有很清晰的理解. ...

  10. 使用constexpr时遇到的小坑

    最近在使用constexpr的时候无意中踩了个小坑. 下面给个小示例: #include <iostream> constexpr int n = 10; constexpr char * ...