IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 17.9处理大数据对象(血干JAVA系类) -> 正文阅读

[大数据]17.9处理大数据对象(血干JAVA系类)

总结:

  1. 处理CLOB数据(文本)
    【例17.16】写入大文本数据(pstmt写入)
    【例17.17】读取大文本字段(直接ResultSet)
    【例17.18】使用Clob读取内容(使用Clob)
    2.17.9.2 处理BLOB数据(视频,图片)
    【例17.19]将图片写入到数据表中(pstmt存入)
    【例17.20】读取内容,并将图片信息保存(直接ResultSet)
    【例17.21】使用Blob读取内容(使用Blob)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

17.9.1 处理CLOB数据

在这里插入图片描述

【例17.16】写入大文本数据(pstmt写入)

package file;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;

public class demo 
{
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
	public static final String DBUSER = "root";
	public static final String DBPASS = "dyh20011022";
	
	public static void main(String[] args) throws Exception
	{		
		Class.forName(DBDRIVER);//加载驱动
		String sql = "insert into userclob(name,note) values(?,?)";
		File f = new File("d:"+File.separator+"mldn.txt");
		InputStream input = new FileInputStream(f);
		
		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		PreparedStatement pstmt = conn.prepareStatement(sql);
		
		pstmt.setString(1, "文本");
		pstmt.setAsciiStream(2,input,(int)f.length());
		pstmt.executeUpdate();
		
		pstmt.close();
		conn.close();
	}
}

因为现在的内容是保存在文件中,所以使用FilelnputStream类将文本文件读取进来,然后直接通过PreparedStatement对象将其写入到对应的大文本字段中。

写入完成后,下面直接使用ResultSet将其读取进来,因为写入的时候是按照输入流的方式写入的,所以此时也需要按照输入流的方式读取进来.

【例17.17】(直接ResultSet)读取大文本字段

InputStream input = rs.getAsciiStream(2);
Scanner scan = new Scanner(input);
scan.useDelimiter("\r\n");//换行
while(scan.hasNext())
{
	XXXX;
}
package file;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class demo 
{
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
	public static final String DBUSER = "root";
	public static final String DBPASS = "dyh20011022";
	
	public static void main(String[] args) throws Exception
	{		
		int id = 1;
		Class.forName(DBDRIVER);//驱动
		String sql = "select name,note from userclob where id=?";
		
		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, id);
		ResultSet rs =pstmt.executeQuery();
		
		while(rs.next())
		{
			String name = rs.getString(1);
			StringBuffer buf = new StringBuffer();
			System.out.println("name:"+name);
			InputStream input = rs.getAsciiStream(2);
			Scanner scan = new Scanner(input);
			scan.useDelimiter("\r\n");//换行
			while(scan.hasNext())
			{
				buf.append(scan.next()).append("\n");
			}
			System.out.println("内容"+buf);
			input.close();
		}
		
		rs.close();
		pstmt.close();
		conn.close();
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【例17.18】使用Clob读取内容

Clob c =rs.getClob(2);
String str = c.getSubString(1,(int)c.length());
package file;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


public class demo 
{
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
	public static final String DBUSER = "root";
	public static final String DBPASS = "dyh20011022";
	
	public static void main(String[] args) throws Exception
	{		
		int id = 1;
		Class.forName(DBDRIVER);//驱动
		String sql = "select name,note from userclob where id=?";
		
		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, id);
		ResultSet rs =pstmt.executeQuery();
		
		while(rs.next())
		{
			String name = rs.getString(1);
			Clob c =rs.getClob(2);
			String str = c.getSubString(1,(int)c.length());
			System.out.println("全部:"+str);
			System.out.println("---------------------------------------------");
			c.truncate(100);//读取100字符
			System.out.println("部分:"+c.getSubString(1,(int)c.length()));
		}
		
		rs.close();
		pstmt.close();
		conn.close();
	}
}

在这里插入图片描述

17.9.2 处理BLOB数据

【例17.19]将图片写入到数据表中(pstmt存入)

		File f = new File("d:"+File.separator+"mldn.gif");
		InputStream input = new FileInputStream(f); 
		pstmt.setString(1, name);
		pstmt.setBinaryStream(2, input,(int)f.length());
package file;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


public class demo 
{
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
	public static final String DBUSER = "root";
	public static final String DBPASS = "dyh20011022";
	
	public static void main(String[] args) throws Exception
	{		
		String name ="gif图";
		Class.forName(DBDRIVER);//驱动
		String sql = "insert into userblob(name,photo) values(?,?)";
		
		
		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		PreparedStatement pstmt = conn.prepareStatement(sql);
		
		File f = new File("d:"+File.separator+"mldn.gif");
		InputStream input = new FileInputStream(f); 
		pstmt.setString(1, name);
		pstmt.setBinaryStream(2, input,(int)f.length());
		
		pstmt.executeUpdate();
		
		pstmt.close();
		conn.close();
		
	}
}

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

【例17.20】读取内容,并将图片信息保存

package file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


public class demo 
{
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
	public static final String DBUSER = "root";
	public static final String DBPASS = "dyh20011022";
	
	public static void main(String[] args) throws Exception
	{		
		int id = 1;
		Class.forName(DBDRIVER);//驱动
		String sql = "select name,photo from userblob where id=?";
		
		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		PreparedStatement pstmt = conn.prepareStatement(sql);
		 
		pstmt.setInt(1, id);
		ResultSet rs = pstmt.executeQuery();//结果集
		
		//读取
		while(rs.next())
		{
			String name = rs.getString(1);
			System.out.println("name:"+name);
			InputStream input = rs.getBinaryStream(2);//输入流
			File f = new File("d:"+File.separator+"loadmldn.gif");
			OutputStream output = new FileOutputStream(f);	//输出流
			int temp = 0;
			while((temp=input.read())!=-1)
			{
				output.write(temp);
			}
			input.close();
			output.close();
		}
		rs.close();
		pstmt.close();
		conn.close();
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【例17.21】使用Blob读取内容

package file;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;


public class demo 
{
	public static final String DBDRIVER = "com.mysql.cj.jdbc.Driver";
	public static final String DBURL = "jdbc:mysql://localhost:3306/java_mysql";
	public static final String DBUSER = "root";
	public static final String DBPASS = "dyh20011022";
	
	public static void main(String[] args) throws Exception
	{		
		int id = 1;
		Class.forName(DBDRIVER);//驱动
		String sql = "select name,photo from userblob where id=?";
		
		Connection conn =DriverManager.getConnection(DBURL, DBUSER, DBPASS);
		PreparedStatement pstmt = conn.prepareStatement(sql);
		 
		pstmt.setInt(1, id);
		ResultSet rs = pstmt.executeQuery();//结果集
		
		//读取
		while(rs.next())
		{
			String name = rs.getString(1);
			System.out.println("name:"+name);
			Blob b = rs.getBlob(2);
			File f = new File("d:"+File.separator+"loadmldn.gif");
			OutputStream output = new FileOutputStream(f);	//输出流
			output.write(b.getBytes(1, (int)f.length()));
			output.close();
		}
		rs.close();
		pstmt.close();
		conn.close();
	}
}

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:08:56  更:2022-06-29 19:09:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 16:48:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码