java string blob_java String类型转换为Blob类型

展开全部

这个是mysql下存取blob字段的一个很简单的类,跟据自己的需要32313133353236313431303231363533e4b893e5b19e31333332623936改改就行了

/**

* Title: BlobPros.java

* Project: test

* Description: 把图片存入mysql中的blob字段,并取出

* Call Module: mtools数据库中的tmp表

* File: C:\downloads\luozsh.jpg

* Copyright: Copyright (c) 2003-2003

* Company: uniware

* Create Date: 2002.12.5

* @Author: FeiFan

* @version 1.0 版本*

*

* Revision history

* Name Date Description

* ---- ---- -----------

* Chenqh 2003.12.5 对图片进行存取

*

* note: 要把数据库中的Blob字段设为longblob

*

*/

//package com.uniware;

import java.io.*;

import java.util.*;

import java.sql.*;

public class BlobPros

{

private static final String URL = "jdbc:mysql://10.144.123.63:3306/mtools?user=wind&password=123&useUnicode=true";

private Connection conn = null;

private PreparedStatement pstmt = null;

private ResultSet rs = null;

private File file = null;

public BlobPros()

{

}

/**

* 向数据库中插入一个新的BLOB对象(图片)

*

* @param infile - 要输入的数据文件

* @throws java.lang.Exception

*

*/

public void blobInsert(String infile) throws Exception

{

FileInputStream fis = null;

try

{

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

conn = DriverManager.getConnection(URL);

file = new File(infile);

fis = new FileInputStream(file);

//InputStream fis = new FileInputStream(infile);

pstmt = conn.prepareStatement("insert into tmp(descs,pic) values(?,?)");

pstmt.setString(1,file.getName()); //把传过来的第一个参数设为文件名

//pstmt.setBinaryStream(2,fis,(int)file.length()); //这种方法原理上会丢数据,因为file.length()返回的是long型

pstmt.setBinaryStream(2,fis,fis.available()); //第二个参数为文件的内容

pstmt.executeUpdate();

}

catch(Exception ex)

{

System.out.println("[blobInsert error : ]" + ex.toString());

}

finally

{

//关闭所打开的对像//

pstmt.close();

fis.close();

conn.close();

}

}

/**

* 从数据库中读出BLOB对象

*

* @param outfile - 输出的数据文件

* @param picID - 要取的图片在数据库中的ID

* @throws java.lang.Exception

*

*/

public void blobRead(String outfile,int picID) throws Exception

{

FileOutputStream fos = null;

InputStream is = null;

byte[] Buffer = new byte[4096];

try

{

Class.forName("org.gjt.mm.mysql.Driver").newInstance();

conn = DriverManager.getConnection(URL);

pstmt = conn.prepareStatement("select pic from tmp where id=?");

pstmt.setInt(1,picID); //传入要取的图片的ID

rs = pstmt.executeQuery();

rs.next();

file = new File(outfile);

if(!file.exists())

{

file.createNewFile(); //如果文件不存在,则创建

}

fos = new FileOutputStream(file);

is = rs.getBinaryStream("pic");

int size = 0;

/* while(size != -1)

{

size = is.read(Buffer); //从数据库中一段一段的读出数据

//System.out.println(size);

if(size != -1) //-1表示读到了文件末

fos.write(Buffer,0,size);

} */

while((size = is.read(Buffer)) != -1)

{

//System.out.println(size);

fos.write(Buffer,0,size);

}

}

catch(Exception e)

{

System.out.println("[OutPutFile error : ]" + e.getMessage());

}

finally

{

//关闭用到的资源

fos.close();

rs.close();

pstmt.close();

conn.close();

}

}

public static void main(String[] args)

{

try

{

BlobPros blob = new BlobPros();

//blob.blobInsert("C:\\Downloads\\luozsh1.jpg");

blob.blobRead("c:/downloads/luozishang.jpg",47);

}

catch(Exception e)

{

System.out.println("[Main func error: ]" + e.getMessage());

}

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Neo4j:特定关系与一般关系+属性

为了在Neo4j查询中获得最佳的遍历速度&#xff0c;我们应该使关系类型尽可能具体 。 让我们看一下几周前我在Skillsmatter上发表的“ 建模建议引擎建模 ”演讲中的一个例子。 我需要决定如何为成员和事件之间的“ RSVP”关系建模。 一个人可以对事件表示“是”或“否”&#…

java 按位置格式化字符串_Java字符串格式化,{}占位符根据名字替换实例

我就废话不多说了&#xff0c;大家还是直接看代码吧~import java.beans.PropertyDescriptor;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;import java.util.regex.Matcher;import java.util.regex.Pattern;public class StringFormatUtil …

Apache Drill 1.4性能增强的简要概述

今天&#xff0c;我们很高兴宣布Apache Drill 1.4现已在MapR发行版中可用。 钻1.4是MAPR生产就绪和支持的版本&#xff0c;可以从下载这里 &#xff0c;找到1.4版本说明这里 。 Drill 1.4以其高度灵活和可扩展的体系结构为基础&#xff0c;带来了多种新功能以及对查询性能的增…

【01背包】洛谷P1282多米诺骨牌

题目描述 多米诺骨牌有上下2个方块组成&#xff0c;每个方块中有1~6个点。现有排成行的 上方块中点数之和记为S1&#xff0c;下方块中点数之和记为S2&#xff0c;它们的差为|S1-S2|。例如在图8-1中&#xff0c;S161119&#xff0c;S2153211&#xff0c;|S1-S2|2。每个多米诺骨牌…

java geolitecity_GeoLite2 Java根据IP获得城市、经纬度

之前我们介绍过通过 qqwry.dat 根据IP获得所属城市和运营商信息。但是这个 qqwry.dat 已经太久没更新了&#xff0c;数据有些不准确&#xff0c;而且现在我们有个需求就是想获取某个IP所在的经纬度。这里我们可以使用 GeoLite2&#xff0c;这个是国外开源的一个库&#xff0c;需…

计算机专业英语第二版张强华翻译_计算机语言发展的三个阶段,机器语言、汇编语言与高级语言...

在如今信息发达的时代&#xff0c;科技日新月异&#xff0c;计算机和Internet网络的发展也成为人们日常生活的重要部分。学习一两门计算机编程语言也如当初学习英文一样的火热&#xff0c;随着人工智能AI和云计算的不断发展&#xff0c;Python语言和Scala语言已经成为这两个领域…

使用Apache Drill REST API通过Node构建ASCII仪表板

Apache Drill有一个隐藏的瑰宝&#xff1a;易于使用的REST接口。 该API可用于查询&#xff0c;分析和配置Drill引擎。 在此博客文章中&#xff0c;我将说明如何使用Brilled Contrib使用Drill REST API创建ascii仪表板。 ASCII仪表盘如下所示&#xff1a; 先决条件 Node.js …

影子场vs.属性访问器接口第2轮

如果你们还没有注意到Dirk Lemmerman和我之间的&#xff08;轻松&#xff09; 对决 &#xff0c;那么让我快速提及一下我们是如何做到这一点的。 首先&#xff0c;Dirk创建了JavaFX技巧23&#xff1a;“ 为属性保存内存阴影字段 ”&#xff0c;以帮助应用程序开发人员在使用Jav…

Lowest Common Ancestor of a Binary Search Tree a Binary Tree

235. Lowest Common Ancestor of a Binary Search Tree 题目链接&#xff1a;https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/#/description 题目大意&#xff1a;给定一棵二叉查找树和两个节点p和q&#xff0c;要求返回这两个节点的第一个公共…

controller调用另一个controller中的方法 获取返回值_必须掌握!你知道 Spring 中运用的 9 种设计模式吗 ?...

Spring中涉及的设计模式总结&#xff0c;在面试中也会经常问道 Spring 中设计模式的问题。本文以实现方式、实质、实现原理的结构简单介绍 Sping 中应用的 9 种设计模型&#xff0c;具体详细的刨析会在后面的文章发布&#xff0c;话不多说&#xff0c;来个转发、在看、收藏三连…

我个人的CRUD故事-或我如何来到CUBA平台

在此博客文章中&#xff0c;我想介绍一下我如何使用CUBA平台以及此工具的好处。 在我年轻的“业务应用程序开发”历史上&#xff0c;我将深入探讨不同的阶段&#xff0c;只为您提供一些背景知识。 因此&#xff0c;让我们从如何进入典型的CRUD应用程序开始&#xff0c;以帮助非…

java 不定参数方法_java中不定长参数的使用方法

java中不定长参数的使用方法不定长参数方法的语法如下&#xff1a;返回值 方法名(参数类型...参数名称)在参数列表中使用“...”形式定义不定长参数&#xff0c;其实这个不定长参数a就是一个数组&#xff0c;编译器会将(int...a)这种形式看作是(int[] a)的形式。示例&#xff1…

光盘刻录只允许读取不能拷贝_原来 8 张图,就可以搞懂「零拷贝」了

作者 | 小林coding来源 | 小林coding(ID&#xff1a;CodingLin)前言磁盘可以说是计算机系统最慢的硬件之一&#xff0c;读写速度相差内存 10 倍以上&#xff0c;所以针对优化磁盘的技术非常的多&#xff0c;比如零拷贝、直接 I/O、异步 I/O 等等&#xff0c;这些优化的目的就是…

纯java分布式内存数据库_最新Java岗面试清单:分布式+Dubbo+线程+Redis+数据库+JVM+并发...

最近可能有点闲的慌&#xff0c;没事就去找面试面经&#xff0c;整理了一波面试题。我大概是分成了Java基础、中级、高级&#xff0c;分布式&#xff0c;Spring架构&#xff0c;多线程&#xff0c;网络&#xff0c;MySQL&#xff0c;Redis缓存&#xff0c;JVM相关&#xff0c;调…

c++ 多核cpu序列号_详解CPU几个重点基础知识

作者 | 骏马金龙责编 | 阿秃关于CPU和程序的执行1、程序的运行过程&#xff0c;实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程。当程序要执行的部分被装载到内存后&#xff0c;CPU要从内存中取出指令&#xff0c;然后指令解码(以便知道类型和操作数&#xff0c;简单…

java log4j 写日志_Java log4j同时写入文本日志和数据库日志

版权声明&#xff1a;转载原创文章请以超链接形式请注明原文章出处&#xff0c;尊重作者&#xff0c;尊重原创&#xff01;恰饭广告Log4jUtil.javaimport org.apache.log4j.Logger;import org.apache.log4j.MDC;public class Log4jUtil {private static Logger logger Logger.…

订单生产计划表范本_工厂生产管理为什么需要ERP软件?

对于工厂来说&#xff0c;规模大了&#xff0c;管理问题也就随之多了&#xff0c;在工厂生产流程中&#xff0c;我们常见的一些生产现象&#xff0c;比如生产计划表徒具形式、各生产部门半成品堆积、生产计划达标率低、前后工序原材料或半成品衔接不上、经常追加或取消生产计划…

P1266 速度限制

速度限制 洛谷链接 题目大意&#xff1a; 在一个城市中&#xff0c;每条道路有限速和长度&#xff0c;通过一条道路的时间为这条道路的长度除以限制的速度&#xff0c;有的道路不知道限速为多少&#xff0c;那么就按现在的速度走这条路&#xff0c;找出从第一个点到目标点的最短…

mysql递归查询所有上下节点_非递归打印二叉树的所有路径,保存父节点和孩子节点到底有啥差别...

题目解读题目要求输出二叉树的所有路径(字符串形式)&#xff0c;乍一看很简单&#xff0c;不就是二叉树的遍历嘛&#xff01;其实不然&#xff0c;首先&#xff0c;我们用非递归的方式(C)解决这道题(递归在产品代码中是不允许使用的&#xff0c;其次定位 bug 的时候非常困难)。…

发现大量Java原语集合处理

在阅读博客文章5减少Java垃圾收集开销的技巧时 &#xff0c;我想起了一个名为Trove的小型Java收集库&#xff0c;该库“为Java提供了高速的常规和原始收集”。 我对应用Trove允许原始类型的集合而不是要求集合中的元素成为完整的引用对象的能力特别感兴趣。 我在这篇文章中会更…