数据库存储txt文本和jpg图片
环境:MySql+SQLyog+j2se+jdbc
存储文本用longtext类型
存储图片用blob类型
1、首先建表
create table t_t (
id int(16) NOT NULL AUTO_INCREMENT,
longText longtext,
picture blob,
PRIMARY KEY (`id`)
) ;
`longText` longtext,//文本txt
`picture` blob,//图片pic

数据库为t_test,表为t_t
2、jdbc操作,打开eclipse for j2se
String jdbcName="com.mysql.jdbc.Driver";
String dbUrl="jdbc:mysql://localhost:3306/t_test";
String dbUserName="root";
String dbPassword="123456"; Class.forName(jdbcName);//加载驱动
Connection conn=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);//连接
//构造第一个SQL语句,先不管图片,先插入文本
String sql="insert into t_t values(NUll,?,NULL)";//?为第一个坑
PreparedStatement pst=conn.prepareStatement(sql);
找材料:
在E盘建立两个TXT文档

随便写一些文字,先不考虑有中文。
File context=new File("e:/h01.txt");//File文件
InputStream inputStream=new FileInputStream(context);//使用流
pst.setAsciiStream(1,inputStream,context.length());//填第一个坑
int result=pst.executeUpdate();//执行SQL语句
if(result==1){//提示信息
System.out.println("插入成功");
}else{
System.out.println("插入失败");
}
有一些异常用 throws抛出(throws ClassNotFoundException, SQLException, FileNotFoundException)

转到数据库,看到插入了一个文本

取出文本,
String sql="select * from t_t where id=?";//挖坑?
PreparedStatement pst=conn.prepareStatement(sql);
pst.setInt(1, 1);//第一个1是填第一个坑,第二个1是数据库中id为1的记录
ResultSet rs=pst.executeQuery();
if(rs.next()){
Clob c=rs.getClob("longText");//使用Clob
String str=c.getSubString(1, (int)c.length());//赋值给字符串
System.out.println(str);//输出文本
}
运行如下:

结果与h01.txt的结果一致
图片picture的存储
在E盘准备一张图片(002.jpg)
//不考虑txt(设置为NULL)只考虑jpg
String sql="insert into t_t values(NUll,NULL,?)";//挖坑
PreparedStatement pst=conn.prepareStatement(sql);
File pic=new File("e:/002.jpg");
InputStream inputStream=new FileInputStream(pic);
pst.setBinaryStream(1, inputStream,pic.length());//填坑
int result=pst.executeUpdate();
if(result==1){//提示信息
System.out.println("插入成功");
}else{
System.out.println("插入失败");
}
eclipse插入成功,看数据库。


002.jpg已经插入到了数据库
下一步
取出图片到F盘
String sql="select picture from t_t where id=?";//挖坑
PreparedStatement pst=conn.prepareStatement(sql);
pst.setInt(1,2);//填坑,2表示数据库的id=2的这条记录
ResultSet rs=pst.executeQuery();
if(rs.next()){
Blob b=rs.getBlob("picture");
//输出到F盘并且命名为003.jpg
FileOutputStream out=new FileOutputStream(new File("f:/003.jpg"));
out.write(b.getBytes(1, (int)b.length()));
out.close();
} conn.close();
运行成功,F盘多了一个003.jpg与002.jpg相同
数据库存储txt文本和jpg图片的更多相关文章
- DDD开发框架ABP之本地化资源的数据库存储扩展
在上一篇<DDD开发框架ABP之本地化/多语言支持>中,我们知道,ABP开发框架中本地化资源存储可以采用XML文件,RESX资源文件,也提供了其他自定义的存储方式的扩展接口.ABP框架默认 ...
- PHP将富文本编辑后的内容,去除样式图片等只保留txt文本内容
1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...
- [转载]数据库存储图片(MSSQL/ORACLE/ACCESS
下面我来汇总一下如何将图片保存到SqlServer.Oracle.Access数据库中.首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换 ...
- 芝麻HTTP:TXT文本存储
将数据保存到TXT文本的操作非常简单,而且TXT文本几乎兼容任何平台,但是这有个缺点,那就是不利于检索.所以如果对检索和数据结构要求不高,追求方便第一的话,可以采用TXT文本存储.本节中,我们就来看下 ...
- 使用 TXT 文本存储
将爬取的数据以 TXT 文本形式存储: import requests data = requests.get('http://www.baidu.com/').text with open('/tm ...
- PHP将富文本内容去除各类样式图片等只保留txt文本内容(作用于SEO的description)
1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...
- 使用java读取解析txt文本数据,管理简单的数据
在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的一下本人写出我自己做的一个读取文本文件的例子,文件中存储的是我的个人网站 www.yzcopen.com 导航栏目因为懒得使 ...
- oracle存储大文本clob、blob
oracle存储大文本clob.blob 1 package cn.itcast.web.oracle.util; 2 3 import java.sql.Connection; 4 import j ...
- Python全栈-数据库存储引擎
一.存储引擎概述 在个人PC机中,不同的文件类型有不同的处理机制进从存取,例如文本用txt打开.保存:表格用excel读.写等.在数据库中,同时也存在多种类型的表,因此数据库操作系统中也应拥有对各种表 ...
随机推荐
- Android学习笔记——文件路径(/mnt/sdcard/...)、Uri(content://media/external/...)学习
一.URI 通用资源标志符(Universal Resource Identifier, 简称"URI"). Uri代表要操作的数据,Android上可用的每种资源 - 图像.视频 ...
- Android之SurfaceView
SurfaceView也是继承了View,但是我们并不需要去实现它的draw方法来绘制自己,为什么呢? 因为它和View有一个很大的区别,View在UI线程去更新自己:而SurfaceView则在一个 ...
- C++实现大数据乘法
结构体定义与封装 struct bigdatacom { private : ]; ]; public : void init(const char *str1,const char *str2) { ...
- Android实现监测网络状态
本文主要用到了安卓监测网络状态变化功能,实现了WIFI,3G,无网络状态切换时发出通知的功能. 主要知识点 service broadcast 接口回调实现 service的基本知识 service可 ...
- an error occurred during the file system check错误的解决
[root@GIT ~]# fsck -A /dev/mapper/VolGroup-lv_root 下面的选择,一路Y就行了,最后reboot,问题解决!
- js伪数组及转换
什么是伪数组 能通过Array.prototype.slice转换为真正的数组的带有length属性的对象. 这种对象有很多,比较特别的是arguments对象,还有像调用getElementsByT ...
- Android中JNI 的一些常用Method说明
Android JNI和NDK关系 1.什么JNI Java Native Interface (JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程 ...
- ML 05、分类、标注与回归
机器学习算法 原理.实现与实践 —— 分类.标注与回归 1. 分类问题 分类问题是监督学习的一个核心问题.在监督学习中,当输出变量$Y$取有限个离散值时,预测问题便成为分类问题. 监督学习从数据中学习 ...
- 前端调试效率低?试试这10个“Chrome开发者工具”使用技巧
摘要:今天给大家分享一些使用“Chrome开发者工具”的小技巧.包括调试,优化页面渲染速度等.希望能提升Web开发人员的工作效率. 今天给大家分享一些使用“Chrome开发者工具”的小技巧.包括调试, ...
- Loadrunner请求自定义的http(json)文件and参数化
Loadrunner请求自定义的http(json)文件and参数化 研究啦好些天这个东西啦 终于出来答案啦 嘿嘿 给大家分享一下 : 请求自定义的http文件用函数:web_custom_ ...