数据库存储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读.写等.在数据库中,同时也存在多种类型的表,因此数据库操作系统中也应拥有对各种表 ...
随机推荐
- windows电脑变成wifi热点命令
netsh wlan set hostednetwork mode=allow ssid=WIFI_NAME key="abcdefgh" netsh wlan start hos ...
- ubuntu 图形界面查看隐藏文件
在 Linux 下以 . 开头的文件或文件夹为隐藏文件,在图形界面(nautilus)下可用 CTRL + H 显示隐藏文件,终端下者可以用 ls -a 显示所有文件.
- input框颜色修该
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- pyinstaller--将py文件转化成exe
首先要注意一下:打包python文件成exe格式这个过程只能在windows环境下运行 1. 直接在命令行用pip安装 pyinstaller pip install pyinstaller</ ...
- OOP 7大原则
1. 开闭原则(Open-Closed Principle,OCP) 1)定义:一个软件实体应当对扩展开放,对修改关闭( Software entities should be open for e ...
- 3.工厂方法模式(Factory Method)
using System; using System.Reflection; namespace ConsoleApplication1 { class Program { static void M ...
- redis的PHP扩展包安装方法
试用Redis安装.php环境连接.测试 Redis介绍 Redis本质上一个Key/Value数据库,与Memcached类似的NoSQL型数据库,但是他的数据可以持久化的保存在磁盘上,解 ...
- 使用VS自带的报表RDLC结合报表控件ReportViewer使用
1.新建一个报表,设置报表之后,使用强类型的DataSet xsd 配置数据源,对报表中的使用最常用的是文本框和表格控件 2.新增WebForm窗体,拖一个ReportViewer控件,在WebFo ...
- SQL 高级查询
WITH FINISHMAINT (FRAMENO,DELIVEREDDATE) AS ( SELECT DISTINCT RP.FRAMENO, MAX(PRC.DELIVEREDDATE) OVE ...
- poj 2195 二分图带权匹配+最小费用最大流
题意:有一个矩阵,某些格有人,某些格有房子,每个人可以上下左右移动,问给每个人进一个房子,所有人需要走的距离之和最小是多少. 貌似以前见过很多这样类似的题,都不会,现在知道是用KM算法做了 KM算法目 ...