数据库存储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读.写等.在数据库中,同时也存在多种类型的表,因此数据库操作系统中也应拥有对各种表 ...
随机推荐
- codeforces B. Flag Day 解题报告
题目链接:http://codeforces.com/problemset/problem/357/B 题目意思:输入n个人和m场舞蹈,给出每场舞蹈(只有3个人参与)中参与的舞者的编号,你需要为这些舞 ...
- VS2010 error C3861: “exit”: 找不到标识符
#include <stdlib.h> 可以解决问题
- Session的使用(登录例案+其它页面访问)
本程序功能是使用Session将用户输入的用户名保存在Session中(登录成功情况下,登录失败不会有Session值),其它页面想访问时会先判断是否有之前存的Session值. 登录Login.ht ...
- Android之自定义控件入门
本文主要讲述了实现安卓button点击变色与利用ViewPager实现图片自动轮播效果 我伞可以看到在很多应用中,安卓按钮按下时与正常时状态是不同的,这种效果也很容易达到. 第一步:创建XML文件定义 ...
- MakeFile中赋值
Makefile 中:= ?= += =的区别 在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验 新建一个Makefile,内容为 ...
- [图文详解] Sublime Text在Windows/Ubuntu/Mac OSX中配置使用CTags
很开发者都在找Sublime Text中函数转跳的功能,这个是软件自身没有的功能,要靠CTags这个插件配合CTags的可执行程序的实现的.按照我的理解是CTags扫描索引你的项目文件,然后subli ...
- sdut 2416:Fruit Ninja II(第三届山东省省赛原题,数学题)
Fruit Ninja II Time Limit: 5000MS Memory limit: 65536K 题目描述 Have you ever played a popular game name ...
- Xamarin.Android开发实践(八)
Xamarin.Android其他类型的服务 一.前言 前面我们已经学了关于服务的很多知识,但是对于真实的开发那些远远不够,通过这节我们将学习其他类型的服务,比如前台服务.IntentService和 ...
- 继承ActionSupport,返回INPUT的原因
http://developer.51cto.com/art/200907/134757.htm 表面现象: 在WebWork中,当一个Action中既没有重写ActionSupport中的valid ...
- 为什么在SQL Server2008在视图中修改表结构无效
解决办法: 在SQL server 2008 中,打开菜单-->工具