数据库存储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. Valera and Contest 解题报告
题目链接:http://codeforces.com/problemset/problem/369/B 题目意思:给出6个整数, n, k, l, r, sall, sk ,需要找出一个满足下列条件的 ...
- hdu 1050 Moving Tables 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050 这道题目隔了很久才做出来的.一开始把判断走廊有重叠的算法都想错了.以为重叠只要满足,下一次mov ...
- CentOS6.5安装MySql5.5
最近在CentOS上安装MySql,本来以为yum安装会很简单,但是却花了自己不少时间,所以决定和大家分享下. 首先,安装MySql源! 下载地址:http://dev.mysql.com/downl ...
- 在Win8中创建热点,共享网络
在Win8中创建热点,共享网络 办公室中,我独享10M光纤,没什么要下的,便想利用来更新下Ipad里面的程序,下点公开课.那在不利用软件[用很多wifi共享的软件],从win7开始 系统本身就自带相关 ...
- JDK JRE 区别
JDK 包含了编译器,比如让.java编译成.classs文件. JRE =Java Runtime Environment j是一些比如一些split函数需要的包,都在里面,基本的运行环境都在JR ...
- Linux命令行下创建纳入版本控制下的新目录
[root@ok 资料库]# svn mkdir test A test [root@ok 资料库]# svn ci -m "mkdir test" Adding 资料库/test ...
- Entity FrameWork 中使用Expression<Func<T,true>>访问数据库性能优化
问题的本质是:扩展的Where方法有四个参数重载.传进去Func<T,true>那么返回值是IEnumable的接口类型的集合,如果是Expression<Func<T,tru ...
- 必须正确理解的---ng指令中的compile与link函数解析
这个绝对是深入的知识,但看完之后,对NG的理解就很利害啦. http://www.ifeenan.com/angularjs/2014-09-04-%5B%E8%AF%91%5DNG%E6%8C%87 ...
- inner join、left join、right join等的区别
left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录.right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录.inner join: 内连接,又叫等 ...
- 什么是超级立方体,HyperCube
我试试用我的方式说说如何构造n维空间吧. n维空间在n大于3后,说要画出来,有点难以想象.但从数学的角度看,高维空间这个概念还算比较普通.容易理解的. 与其解释,不如快快开始.我选择用图(Graph) ...