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


  • 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. kubectl create / replace 与kubectl apply 的区别

    kubectl create / replace 以ngnix 的 nginx.yaml为例: apiVersion: apps/v1 kind: Deployment metadata: name: ...

  2. ISODateTimeFormat 转换2019-08-15T00:36:49.366456463Z 日期格式

    import java.text.*; import java.text.SimpleDateFormat; import java.util.*; import org.joda.time.Date ...

  3. 由奶茶店突发奇想开始了Java设计模式:享元模式

    目录 定义 意图 主要解决问题 何时使用 优缺点 结构 奶茶摊位的例子 奶茶店的例子 在什么情况下使用享元模式 定义 享元模式是对象的结构模式,享元模式以共享的方式高效的支持大量的细粒度对象,主要用于 ...

  4. mysql索引性能验证,高性能的索引策略

    索引性能验证 1.无索引列的查询 在where条件中查询没有添加索引的列,性能会比较差.我们可以先在sqlyog中打开表t_user的数据,然后复制一个名字出来进行查询. /*无索引列的查询,索引不会 ...

  5. 博客之初体验-----python初了解

    ---恢复内容开始--- 1.python2.x与python3.x的区别 (1) 2.x的默认编码是ASSIC码,不支持中文 (2) 3.x的默认编码是UNICODE,支持中文 (3) 2.x版本与 ...

  6. 1076 Forwards on Weibo

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  7. hdu1146

    题意:       题意最蛋疼,其实是水题,这个题意整的我wa了一个多小时,我就改改题意吧..有一条河,刚开始的时候在左岸有一条船,这条船最多能运n个货物,一趟的时间是t,有m个货物,每个货物有自己到 ...

  8. CVE-2014-3153分析和利用

    本文是结合参考资料对CVE-2014-3153的分析,当然各位看官可以看最后的资料,他们写的比我好. 在看CVE-2014-3153之前我们用参考资料4中例子来熟悉下这类漏洞是如何产生的: /** * ...

  9. POJ1149 最大流经典建图PIG

    题意:       有一个人,他有m个猪圈,每个猪圈里都有一定数量的猪,但是他没有钥匙,然后依次来了n个顾客,每个顾客都有一些钥匙,还有他要卖猪的数量,每个顾客来的时候主人用顾客的钥匙打开相应的门,可 ...

  10. visual studio 将他人的 vtk 程序在本机生成

    在网上下载了一些关于vtk的资源,在本机使用visual studio 打开后,生成时出现类似与以下的错误 无法打开包括文件:"vtkStructuredPointsToPolyDataFi ...