环境: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图片的更多相关文章

  1. DDD开发框架ABP之本地化资源的数据库存储扩展

    在上一篇<DDD开发框架ABP之本地化/多语言支持>中,我们知道,ABP开发框架中本地化资源存储可以采用XML文件,RESX资源文件,也提供了其他自定义的存储方式的扩展接口.ABP框架默认 ...

  2. PHP将富文本编辑后的内容,去除样式图片等只保留txt文本内容

    1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...

  3. [转载]数据库存储图片(MSSQL/ORACLE/ACCESS

    下面我来汇总一下如何将图片保存到SqlServer.Oracle.Access数据库中.首先,我们要明白图片是以二进制的形式保存在数据库中的,那么把图片保存到数据库中的步骤大体上有这几步1.将图片转换 ...

  4. 芝麻HTTP:TXT文本存储

    将数据保存到TXT文本的操作非常简单,而且TXT文本几乎兼容任何平台,但是这有个缺点,那就是不利于检索.所以如果对检索和数据结构要求不高,追求方便第一的话,可以采用TXT文本存储.本节中,我们就来看下 ...

  5. 使用 TXT 文本存储

    将爬取的数据以 TXT 文本形式存储: import requests data = requests.get('http://www.baidu.com/').text with open('/tm ...

  6. PHP将富文本内容去除各类样式图片等只保留txt文本内容(作用于SEO的description)

    1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span ...

  7. 使用java读取解析txt文本数据,管理简单的数据

    在实际开发中会经常碰到使用编程语言读取文本文件的内容,这内容可以是各种各样的一下本人写出我自己做的一个读取文本文件的例子,文件中存储的是我的个人网站 www.yzcopen.com 导航栏目因为懒得使 ...

  8. oracle存储大文本clob、blob

    oracle存储大文本clob.blob 1 package cn.itcast.web.oracle.util; 2 3 import java.sql.Connection; 4 import j ...

  9. Python全栈-数据库存储引擎

    一.存储引擎概述 在个人PC机中,不同的文件类型有不同的处理机制进从存取,例如文本用txt打开.保存:表格用excel读.写等.在数据库中,同时也存在多种类型的表,因此数据库操作系统中也应拥有对各种表 ...

随机推荐

  1. BFS:Meteor Shower(POJ 3669)

         奔跑吧,傻牛 题目大意:这只Bessie的牛又要来闹事了,这次她的任务就是来躲流星雨,流星雨就是在一定时间会从天上砸到Bessie的所在的正方形区域内(Bessie在0,0的位置),然后砸下 ...

  2. ACdream 1112 Alice and Bob(素筛+博弈SG函数)

    Alice and Bob Time Limit:3000MS     Memory Limit:128000KB     64bit IO Format:%lld & %llu Submit ...

  3. Light OJ 1199 - Partitioning Game (博弈sg函数)

    D - Partitioning Game Time Limit:4000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu ...

  4. [Android Pro] RecyclerView实现瀑布流效果(二)

    referece to : http://blog.csdn.net/u010687392 在上篇中我们知道RecyclerView中默认给我们提供了三种布局管理器,分别是LinearLayoutMa ...

  5. 【读书笔记】读《JavaScript设计模式》之桥接模式

    桥接模式(Bridge)将抽象部分与它的实现部分分离,使它们都可以独立地变化. 一.使用场景 使用场景一:事件监控 对于前端而言,最典型的使用场景——事件监控.如—— addEvent(element ...

  6. ImageView中XML属性src和background的区别

    background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸. src是图片内容(前景),bg是背景,可以同时使用. 此外:scaleType只对sr ...

  7. 用例视图 Use Case View(rose)

    找开Rose工具,选择用例视图  Use Case View 先看看这个视图下面都有哪些工具,都能做一些什么: 下面详细说一下: 用例视图下面有工具: 一:选择工具 二:文本框Text Box 三:注 ...

  8. oracle 10g 学习之客户端安装和配置(2)

    概述 Oracle 数据库是一种网络上的数据库, 它在网络上支持多用户, 支持服务器/客户机等部署(或配置) 服务器与客户机是软件概念, 它们与计算机硬件不存在一一对应的关系. 即: 同一台计算机既可 ...

  9. hdu 1159:Common Subsequence(动态规划)

    Common Subsequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  10. linux tricks 之数据对齐。

    转载:http://blog.chinaunix.net/uid-20608849-id-3027953.html   内核为了保持最大的兼容性和代码灵活性,不可能直接对某个数据类型定义它的大小范围. ...