通过java或jsp想数据库存取二进制图片(精)

通过java或jsp想数据库存取二进制图片(精)
通过java或jsp想数据库存取二进制图片(精)

1 MySQL存储大容量的二进制文件的格式是 blob ,其实除了图片还可以存别的

2 要向数据库存储二进制的文件一定要把要存储的数据转换成二进制流

废话就不多说了, 大家看看代码很容易明白, 先来看一个 app 程序, 当然首先您要在数据库中先建立一个用于保存图片的表和相应的列,数据格式为 blob

package com.lizhe;

import Java.io.*;

import java.sql.*;

public class PutImg {

public void putimg( {

try {

Class.forName("org.gjt.mm.mysql.Driver".newInstance(;

String url =

"JDBC:mysql://localhost/img?user=root&password=root&useUnicode=true&characterE ncoding= gbk";

Connection conn = DriverManager.getConnection(url;

Statement stmt = conn.createStatement(;

//stmt.execute("insert into imgt (id values (5";

stmt.close(;

PreparedStatement pstmt = null;

String sql = "";

File file = new File("c: log.jpg";

InputStream photoStream = new FileInputStream(file; //sql = " UPDATE imgt SET img = ? ";

sql = "INSERT INTO imgtable (img VALUES (?"; pstmt = conn.prepareStatement(sql;

pstmt.setBinaryStream(1, photoStream, (int file.length(; pstmt.executeUpdate(;

pstmt.close(;

conn.close(;

} catch (Exception e {

e.printStackTrace(;

}

}

public static void main(String args[]{

PutImg pi=new PutImg(;

pi.putimg(;

}

}

InputStream photoStream = new FileInputStream(file;

可以很清楚的看到我们首先把一个图片文件 (当然也可以是别的什么文件转换成了一个二进制输入流

pstmt.setBinaryStream(1, photoStream, (int file.length(;

这个方法建议大家去查一下 API 文档 , 第一个参数是通配符位置没的说 , 第二个参数是流 , 这和以往的 string 类型的参数不太一样 , 我刚看到的时候也觉得豁然开朗了 , 但是到这里还没完 , 不同于以往的字符串参数 , 这里我们还需要第三个参数来设置这个流的长度 , 这里也就是这个文件的长度 , 导出数据库中的 sql, 一切都清楚了

INSERT INTO `m_diy` V ALUES (2,? JFIF HH?? ExifMM* b j ( 1 r 2 ?i H H Adobe Photoshop CS Windows2007:03:18 23:08:15 ? ??? ? ........等等

其实就是将文件先转换成了二进制的流 , 然后插入到了 sql 语言中 , 向数据库写入了很长很长的一段 sql 语句

然后我们再来写一个 app 程序将这个文件读出来 , 存储成一个图片文件

package com.lizhe;

import Java.io.*;

import java.sql.*;

class GetImg {

private static final String URL =

"JDBC:MySQL://localhost/img?user=root&password

=root&useUnicode=true&characterEncoding=gbk";

private Connection conn = null;

private PreparedStatement pstmt = null;

private ResultSet rs = null;

private File file = null;

public void blobRead(String outfile, int picID throws Exception { FileOutputStream fos = null;

InputStream is = null;

byte[] Buffer = new byte[4096];

try {

Class.forName("org.gjt.mm.mysql.Driver".newInstance(;

conn = DriverManager.getConnection(URL;

pstmt = conn.prepareStatement("select img from imgt where id=?"; pstmt.setInt(1, picID; // 传入要取的图片的 ID

rs = pstmt.executeQuery(;

rs.next(;

file = new File(outfile;

if (!file.exists( {

file.createNewFile(; // 如果文件不存在,则创建

}

fos = new FileOutputStream(file;

is = rs.getBinaryStream("img";

int size = 0;

while ((size = is.read(Buffer != -1 { // System.out.println(size;

fos.write(Buffer, 0, size;

}

} catch (Exception e {

System.out.println( e.getMessage(;

} finally {

// 关闭用到的资源

fos.close(;

rs.close(;

pstmt.close(;

conn.close(;

}

}

public static void main(String[] args { try {

GetImg gi=new GetImg(;

gi.blobRead("c:/getimgs/1.jpg", 5;

} catch (Exception e {

System.out.println("[Main func error: ]" + e.getMessage(;

}

}

}

这里需要注意的是

is = rs.getBinaryStream("img";

img 是数据库中相应的列名 , 其实和 rs.getString(方法差不多 , 只不过这个方法是读取二进制流的

最后在帖两个 bs 系统上用的文件给大家参考

通过 Struts 的 action 向数据库写入二进制图片

/*

* Generated by MyEclipse Struts

* Template path: templates/Java/JavaClass.vtl

*/

package com.lizhe.struts.action;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.Statement;

import javax.Servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.upload.FormFile; import com.lizhe.struts.form.UpimgForm;

/**

* MyEclipse Struts

* Creation date: 05-18-2007

*

* XDoclet definition:

* @struts.action path="/upimg" name="upimgForm" input="/userhomepage.JSP"

* @struts.action-forward name="userhome" path="/userhomepage.jsp"

redirect="true" contextRelative="true"

*/

public class UpimgAction extends Action {

/*

* Generated Methods

*/

/**

* Method execute

* @param mapping

* @param form

* @param request

* @param response

* @return ActionForward

* @throws IOException

* @throws FileNotFoundException

*/

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response throws FileNotFoundException, IOException {

UpimgForm upimgForm = (UpimgForm form;// TODO Auto-generated method stub

FormFile file=upimgForm.getFile(;

InputStream is=file.getInputStream(;

try {

Class.forName("org.gjt.mm.MySQL.Driver".newInstance(;

String url =

"JDBC:mysql://localhost/blog?user=root&password=root&useUnicode=true&characterE ncoding= gb2312";

Connection conn = DriverManager.getConnection(url;

Statement stmt = conn.createStatement(;

//stmt.execute("insertinto img (idvalues (5";

stmt.close(;

PreparedStatement pstmt = null;

String sql = "";

//File file = new File("c: log.jpg";

//InputStream photoStream = new FileInputStream(file;

//sql = "UPDA TE imgt SET img =? ";

sql = "INSERT INTO img (img VALUES (?";

pstmt = conn.prepareStatement(sql;

pstmt.setBinaryStream(1, is, (int file.getFileSize(;

pstmt.executeUpdate(;

pstmt.close(;

conn.close(;

} catch (Exception e {

e.printStackTrace(;

}

return mapping.findForward("userhomepage";

}

}

和 app 的方式几乎是一样的

第二个文件是通过 jsp 将数据库中的图片显示在页面上

这个有些不同

< %@ page contentType="text/html;charset=gb2312"%> < %@ page import="java.sql.*" %> < %@ page import="java.util.*"%> < %@ page import="java.text.*"%> < %@ page import="java.io.*"%> < %@ page

import="java.awt.*"%> < html> < body> <%

Class.forName("org.gjt.mm.mysql.Driver".newInstance(; String

url="jdbc:mysql://localhost/img?user=root&password=root"; Connection con = DriverManager.getConnection(url; String sql = "select * from imgt where id=5";

Statement stmt = con.createStatement(; ResultSet rs = stmt.executeQuery(sql;

if(rs.next( { InputStream in = rs.getBinaryStream("img"; ServletOutputStream op = response.getOutputStream(; int len; byte[] buf=new byte[1024]; while((len=

in.read(buf!=-1 { op.write(buf, 0, len; } op.close(; in.close(; } rs.close(; stmt.close(; con.close(; %> < /body> < /html>

数据库图片的存储

1、引言 数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。但是,如果我们想动态的显示图片,上述方法就不能满足需要了。我们必须把图片存入数据库,然后通过编程动态地显示我们需要的图片。实际操作中,可以利用JSP的编程模式来实现图片的数据库存储和显示。 2、建立后台数据库 假定处理的是图片新闻,那么我们可以建立相应的数据库及数据表对象。我们要存取的数据表结构的SQL脚本如下所示: if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[picturenews]') andOBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[picturenews] GO CREATE TABLE [dbo].[picturenews] ( [id] [int] IDENTITY (1, 1) NOT NULL , [image] [image] NULL , [content] [varchar] (500) COLLATE Chinese_PRC_CI_AS NULL , [detail] [varchar] (5000) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO 表picturenews中,字段id作为标识,每存储一行数据,自动增加1。字段image 用于存储图片信息,其数据类型为“image”。 3、向数据库存储二进制图片 启动Dreamweaver MX后,新建一个JSP文件。其代码如下所示。 <%@ page contentType="text/html;charset=gb2312"%>

容量及图片像素换算

K是千M是兆G是吉咖T是太拉 8bit(位)=1Byte(字节) 1024Byte(字节)=1KB 1024KB=1MB 1024MB=1GB 1024GB=1TB 数位组:一个在信息技术和数码技术领域中,用于表示信息的数量的单位。 一个数位组是数个二进位的组合。早期的不同计算机系统中使用的数位组含有的二进位数目不尽相同。但目前数位组在应用上已经统一,即,一个数位组通常由8个二进位组成。16个二进位合成一个字(word). 32个二进位构成一个复字(double words)。 每个二进位,可用来代表两种状态之一,如电路的开/断等)组成,因此可以代表28 = 256个不同的状态。 4个二进位的组合称为四位组(Nibble)。8个二进位的组合则为一个八位组(Octet)。所以一个数位组通常是一个八位组。 数位组是一个承载信息的基本单元。一个数位组表明的信息由所用的编码方式决定。不同的编码方式有可能用一个或多个数位组来表示一个数字,一个符号,或者一幅图像中的一个色点。常用的编码方式如用来表示字符集的ASCII编码或者ISO/IEC 8859标准的编码。 字节又被译为“字节”,即是在电脑内一个英文字所占的最基本单元。而一个中文字是占两个字节的。 由数位组引申出的计量单位 1 kilobyte kB = 1000 (103) byte 1 megabyte MB = 1 000 000 (106) byte 1 gigabyte GB = 1 000 000 000 (109) byte 1 terabyte TB = 1 000 000 000 000 (1012) byte 1 petabyte PB = 1 000 000 000 000 000 (1015) byte 1 exabyte EB = 1 000 000 000 000 000 000 (1018) byte 1 zettabyte ZB = 1 000 000 000 000 000 000 000 (1021) byte 1 yottabyte YB = 1 000 000 000 000 000 000 000 000 (1024) byte 1 nonabyte NB = 1 000 000 000 000 000 000 000 000 000 (1027) byte 1 doggabyte DB = 1 000 000 000 000 000 000 000 000 000 000 (1030) byte 注意上面Kibi这一系列的定义。Kibi来自英语kilo-binary(二进制的千), 1998年10月在IEC60027-2中订位标准。但到目前在各种应用中还没有完全占优势。 在信息行业中常用用于内存容量的MB, GB,几乎都是指220,230,…数位组。KB也经常表示210数位组,以区别于kB。当然你也会经常看到kB被混用来表示210数位组。这些表示法都并没有被标准化。

java连接mysql数据库

Java连接MySQL 数据库的正确操作流程 时间:2010-05-25 15:41 来源:博客园字体:[大中小] 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述。 当然,首先要安装有JDK(一般是。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的加到classpath里,具体如下: “我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。 环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。 我是用SQLyog的前端软件来创建Database的。 先创接MySQL 数据库: 1.CREATE DATABASE SCUTCS; 接着,创建表: 1.CREATE TABLE STUDENT 2.( 3.SNO CHAR(7) NOT NULL, 4.SNAME VARCHAR(8) NOT NULL, 5.SEX CHAR(2) NOT NULL, 6.BDATE DATE NOT NULL, 7.HEIGHT DEC(5,2) DEFAULT , 8.PRIMARY KEY(SNO) 9.); 然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...); 也可以用SQLyog来操作 好了,创建好了。

C#从SQL 数据库中读取和存入图片

C#从SQL 数据库中读取和存入图片 本实例主要介绍如何将图片存入数据库。将图片存入数据库,首先要在数据库中建立一张表,将存储图片的字段类型设为Image类型,用FileStream类、BinaryReader把图片读成字节的形式,赋给一个字节数组,然后用 ADO.SqlCommand对象的ExecuteNonQuery()方法来把数据保存到数据库中。主要代码如下: private void button1_Click(object sender, EventArgs e) { openFileDialog1.Filter = "*jpg|*.JPG|*.GIF|*.GIF|*.BMP|*.BMP"; if(openFileDialog1.ShowDialog()==DialogResult.OK) { string fullpath =openFileDialog1.FileName;//文件路径 FileStream fs = new FileStream(fullpath, FileMode.Open); byte[] imagebytes =new byte[fs.Length]; BinaryReader br = new BinaryReader(fs); imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length)); //打开数据库 SqlConnection con = new SqlConnection("server=(local);uid=sa;pwd=;database=db_05"); con.Open(); SqlCommand com = new SqlCommand("insert into tb_08 values(@ImageList)",con); com.Parameters.Add("ImageList", SqlDbType.Image); com.Parameters["ImageList"].Value = imagebytes; com.ExecuteNonQuery(); con.Close();

JSP上传图片到数据库的例子

现在想写个程序 向数据库中插入图片路径(或则插入图片也可以) 最好是插入图片的路径这样可插入任意大的图片... 请高手指点一下思路.. 感激不尽 1.通过显示层向数据库中插入图片 2.在界面显示的时候是小图片(缩小过的) 3.当点击查看大图片会显示图片(原来的大小) 提供给你图片上传和显示的代码吧!希望对你有帮助 我在程序代码里贴了向Mysql数据库写入image代码的程序,可是好多人都是Java的初学者,对于这段代码,他们无法将它转换成jsp,所以我在这在写一下用jsp怎样向数据库写入图像文件。大家先在数据库建这样一张表,我下面的这些代码对任何数据库都通用,只要支持blob类型的 只要大家将连接数据库的参数改一下就可以了。 SQL> create table image(id int,content varchar(200),image blob); 如果在sqlserver2000的数据库中,可以将blob字段换为image类型,这在SqlServer2000中是新增的。 testimage.html文件内容如下: Image File



我们在Form的action里定义了一个动作testimage.jsp,它的内容如下: <%@ page contentType= "text/html;charset=gb2312 "%> <%@ page import= "java.sql.* " %> <%@ page import= "java.util.* "%> <%@ page import= "java.text.* "%> <%@ page import= "java.io.* "%>

二进制相关试题图文稿

二进制相关试题 Company number【1089WT-1898YT-1W8CB-9UUT-92108】

数制转换 1. 将十六进制数AB 转化为十进制数是_C___。 A 、175? B 、176? C 、171? D 、188 2. 十进制整数100化为二进制数是_A___。 A 、1100100 B 、1101000 C 、1100010 D 、1110100 3. (65.125)D =(1000001.001)B =(41.2)H 4. 十进制数241转换为二进制数是。 5. 十进制数(57、25)D 分别转换成二进制数(111001、01)B 、八进制数 (71、2)O 、十六进制(39、4)H 。 6. 十进制整数69转换成二进制数的结果是______。 A.1000011 B.1000101 C.1001001 D.1010001 7. 将十六进制数ADH 转化为十进制数是______。 A.171 B.172 C.173 D.113 8. 将十六进制数ADH 转化为八进制数是______。 A.171 B.172 C.173 D.255 9. 十进制整数96转换成二进制数的结果是______。 A.1010010 B.1100100 C.1010000 D.1100000 10. 将十六进制数ABH 转化为十进制数是______。 A.175 B.176 C.171 D.188 11. 二进制数2转换成十六进制数为______H 。 12. 十进制整数108化为二进制数是______。

A.1101000 B.1100110 C.1101100 D.1110100 转换成十六进制数的结果为______。 13.十进制数(67.125) 10 14.十六进制1000转换成十进制数是______。 A.4096 B.1024 C.2048 D.8192 转换成十六进制数为______。 15.二进制数(1011011.011) 2 16.十进制整数100化为二进制数是______。 A.1101000 B.1100100 C.1100010 D.1110100 转换成十六进制数的结果为______。 17.十进制数(35.375) 10 机器数/原码/反码/补码(暂时不考虑) 18.假定机器字长为8位,则[-1]补=。 19.将十进制数(-17)10转换成等价的字长为8位的机器数结果为。 20.将十进制数(-71)10转换成8位长的机器数结果为。 21.在8位(bit)机器字长中,15的补码是______。 22.在8位(bit)机器字长中,-79的补码是______。 23.将十进制数-65转换成8位长的机器数,正确的结果为______。 24.在8位(bit)机器字长中,-35的补码是______。 25.在8位(bit)机器字长中,-58的补码是______。 26.将十进制数-78转换成8位长的机器数,结果为______。 二进制表示的最大范围 27.用1个字节表示非负整数,最大值为______。 28.用1个字节表示带符号整数,其最大值所对应的十进制数为。 29.16位无符号整数的取值范围(0~216-1)。

Java中连接MySql数据库的几种方法

JDBC Java中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。 JDBC的工作原理 JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。 JDBC的四种驱动 1.JDBC-ODBC Bridge JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图: 因为中间有个JDBC-ODBC,所以影响了执行效率。 配置ODBC数据源的方法如下(以Mysql为例): 第一步,打开控制面板—>管理工具--->数据源(ODBC) 选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。

第二步,点击添加 第三步,选择Mysql的ODBC驱动,点击完成。 注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。安装步骤如下: ①.下载安装包,https://www.360docs.net/doc/3e3025238.html,/downloads/connector/odbc/ ②.我们下载与自己系统相应的ODBC驱动 这里我们选择

怎样将图片上传到数据库进行保存

这个范例共包括三个ASP文件和一个数据库(一个表),全部在同一目录下。 1、tblImage 表结构(ACCESS 2000) sn 自动编号序列号 content-type 文本图片类型 image OLE 对象图片数据 2、SimpleImageToData.asp:上传表单及保存图片到数据库的代码部分,主要文件。 <%@ Language=VBScript %> <% option explicit %> <% '从一个完整路径中析出文件名称 function getFileNamefromPath(strPath) getFileNamefromPath = mid(strPath,instrrev(strPath,"\")+1) end function '定义数据库连接字符串 dim cnstr cnstr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.MapPath("./upload.mdb") %> 单个图像保存到数据库 上传图片 显示图片


<% if request.ServerVariables("REQUEST_METHOD") = "POST" then dim sCome, sGo, binData, strData dim posB, posE, posSB, posSE dim binCrlf dim strPath, strFileName, strContentType binCrlf = chrb(13)&chrb(10) '定义一个单字节的回车换行符

用JSP实现个人网页中数据库图片的存储与显文献综述

新疆农业大学 专业文献综述 题目: 用JSP实现个人网页中数据库图片的存储与显 示 姓名: 刘王兵 学院: 计算机与信息工程学院 专业: 信息管理与信息系统 班级: 042 学号: 044631257 指导教师: 李萍职称:讲师 2007年12月10日 新疆农业大学教务处制

用JSP实现个人网页中数据库图片的存储与显示 作者:刘王兵指导教师:李萍 摘要:数据库应用程序,特别是基于WEB的数据库应用程序,常会涉及到图片信息的存储和显示。通常我们使用的方法是将所要显示的图片存在特定的目录下,在数据库中保存相应的图片的名称,在JSP中建立相应的数据源,利用数据库访问技术处理图片信息。但是,如果我们想动态的显示图片,上述方法就不能满足需要了。我们必须把图片存入数据库,然后通过编程动态地显示我们需要的图片。实际操作中,可以利用JSP的编程模式来实现图片的数据库存储和显示。 关键词:jsp;Web;个人网页;图片存储;图片显示; The Literature Summary of Making the Human Resources Homepage of the Class Student Liuwangbing Guide the teacher Liping Abstract:Along with the network technology development and the quantity of the network user increase, more and more people take own first choice way to seek employment on-line, meantime the enterprise also relies on the network to gather the talented person. This article through to analysis the human resources homepage, as well as introduction and analysis the current several kind of popular WEB development technology, to used https://www.360docs.net/doc/3e3025238.html, to description the function, which the human resources homepage have as well as realized. Key words:https://www.360docs.net/doc/3e3025238.html,;Web;Human Resources;Homepage Manufacture 前言:随着计算机互联网技术的飞速发展,WEB技术由原来的静态文档(纯HTML页面)发展到目前的多种web编程语言争夺互联网市场。页面内容由原来单一的文字发展到现在多媒体技术在网站开发中得到了充份利用。多媒体技术在网站开发中的应用是通过把文字、图片、视频、音频等元素巧妙的组合成为一个模块嵌入到网页当中。给浏览者以视觉、听觉的冲击,使以留下更加深刻的印像。而图片在网页当的作用想必仅次于文字,以成为页面当中不可缺少的一部分。大量的图片在网页当中被使用,开发人员从而不得不考虑其在服务器当中的存储及在页面当中更好的显示的问题。 正文: 1 网页当中图片存储与显示技术分析 1.1 图片的存储与在网页中的显示概况 JSP是目前使用十分广泛的网站开发技术,而图像是网站中不可缺少的一部分。在JSP 动态网站设计中,图像数据的处理一般有两种方式:一是对于相对较小的图像,可以用二进制流的方式直接保存到数据库表中,在需要时读出。对于大图像,这种方式读写数据占用的时间较长。但是对于相对较大的图像文件,把图像文件保存到一个文件夹中,文件名保存到数据表中,在需要时进行显示。本文通过个人网页方式讨论了在使用JSP开发动态网站过程中图像在数据库中的存储与显示的解决方案。 1.2 网页中图片的存储方式分类

通过java或jsp想数据库存取二进制图片(精)

1 MySQL存储大容量的二进制文件的格式是 blob ,其实除了图片还可以存别的 2 要向数据库存储二进制的文件一定要把要存储的数据转换成二进制流 废话就不多说了, 大家看看代码很容易明白, 先来看一个 app 程序, 当然首先您要在数据库中先建立一个用于保存图片的表和相应的列,数据格式为 blob package com.lizhe; import Java.io.*; import java.sql.*; public class PutImg { public void putimg( { try { Class.forName("org.gjt.mm.mysql.Driver".newInstance(; String url = "JDBC:mysql://localhost/img?user=root&password=root&useUnicode=true&characterE ncoding= gbk"; Connection conn = DriverManager.getConnection(url; Statement stmt = conn.createStatement(; //stmt.execute("insert into imgt (id values (5"; stmt.close(; PreparedStatement pstmt = null; String sql = "";

File file = new File("c: log.jpg"; InputStream photoStream = new FileInputStream(file; //sql = " UPDATE imgt SET img = ? "; sql = "INSERT INTO imgtable (img VALUES (?"; pstmt = conn.prepareStatement(sql; pstmt.setBinaryStream(1, photoStream, (int file.length(; pstmt.executeUpdate(; pstmt.close(; conn.close(; } catch (Exception e { e.printStackTrace(; } } public static void main(String args[]{ PutImg pi=new PutImg(; pi.putimg(; } } InputStream photoStream = new FileInputStream(file;

Java连接MySql数据库,并且实现插入、删除、更新、选择操作

天之火–Qutr的专栏 君子终日乾乾,夕惕若,厉,无咎。 Home Java连接MySql数据库,并且实现插入、删除、更新、选择操作! 这是我最近写的一个连接MySql数据库的一个例子,主要实现了插入,删除,更新,选择操作,用的环境是j2sdk1.4.2_08,Eclipse3.1。以前我的同事用Python 写了同样的类,非常的好用,支持了我们公司的大部分业务,现在我们慢慢改用Java了,所以我用Java重写了一遍。一方面在今后的业务中能够用到,另一方面熟悉一下Java。 下面我把在Eclipse3.1下怎样配置数据库连接信息简单说一下。 1.启动Eclipse3.1。 2.建立一个Java project就叫DbConnect 吧,再在该Project下建立一个新类也叫 DbConnect 吧。 3.右击DbConnect.java文件点import,选择Archive file然后选择你的 mysql-connector-java-3.1.8-bin.jar文件,点Finish。你会看到有好些文件被加载进来,OK这就是连接MySql所需的驱动信息。如果到了这里你都成功的话那么恭喜你,你已经成功一半了!:) 4.接下来把我下面的代码copy到你的Java文件中,修改相关的数据库连接信息 运行一下。OK? 我说一下那个mysql-connector-java-3.1.8-bin.jar文件,其实这就是一个MySql的驱动,各数据库厂商提供了不同的适用于JDBC的驱动使得在Java中连接数据库非常简单。这里我就不多说了,以后我会写篇专门介绍数据库驱动的文章。关于MySql的驱动还有更新版本的,你需要到MySql的网站上去下载,这个网上到处都是,我就不多说了。下面看程序,有些地方我写了详细的注释应该能看懂。 这个类是非常有特色的,在每个方法的传人参数和返回值不变的情况下,希望高手能提出改进意见。多指教,谢谢! /** * 数据库连接、选择、更新、删除演示 */ //import java.sql.*; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.DriverManager; import java.util.*; public class DbConnect {

jsp 图片上传功能实现原创

package com.lsl.util; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.imageio.ImageIO; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGEncodeParam; import com.sun.image.codec.jpeg.JPEGImageEncoder; /** * * @author Administrator * 图像处理类 */ public class PicCompression { /** * 压缩图片方法 * * @param oldFile * 将要压缩的图片的绝对地址 * @param width * 压缩宽 * @param height * 压缩长 * @param quality * 压缩清晰度建议为1.0 * @param smallIcon * 压缩图片后,添加的扩展名 * @return */ public String zoom(String oldFile, int width, int height, float quality) { if (oldFile == null) { return null; } String newImage = null; try { File file = new File(oldFile);

php接收二进制数据流转换成图片

Php代码 1 error_handler () ); 33 34 //设置保存图片名称,若未设置,则随机产生一个唯一文件名 35 $this->save_name = $save_name ? $save_name : md5 ( mt_rand (), uniqid () ); 36 //设置保存图片路径,若未设置,则使用年/月/日格式进行目录存储 37 $this->save_dir = $save_dir ? self::ROOT_PA TH .$save_dir : self::ROOT_PA TH .date ( 'Y/m/d' ); 38 39 //创建文件夹 40 @$this->create_dir ( $this->save_dir );

Java连接mysql数据库源代码

Java连接mysql数据库源代码 /** *@author mervyn *@Development_time 2011.3.12 *welcome to https://www.360docs.net/doc/3e3025238.html,/mervyn_hb */ package src; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.sql.*; import java.util.*; public class MysqlConnectSystem { /** * @param args * @throws IOException */ public static void main(String[] args) throws SQLException, IOException { String Usename,KeyID,UrlString; //String DriverConnect; char MenuExitValue; String driver="com.mysql.jdbc.Driver"; Scanner EntryValue=new Scanner(System.in); System.out.println("欢迎使用MysqlConnectSystem信息管理系统!"); MysqlConnectSystem mysqlconnect=new MysqlConnectSystem(); MysqlConnectSystem mysqlinsert=new MysqlConnectSystem(); MysqlConnectSystem mysqlupdate=new MysqlConnectSystem(); MysqlConnectSystem mysqldelete=new MysqlConnectSystem(); System.out.println("请输入要登录的用户名:"); Usename=EntryValue.next(); System.out.println("请输入要登录的数据库的密码:"); KeyID=EntryValue.next(); System.out.println("请输入需要登录的数据库:"); UrlString="jdbc:mysql://127.0.0.1:3306/"+EntryValue.next(); do{ try { Class.forName(driver); Connection conn=DriverManager.getConnection(UrlString, Usename,

C# 图片保存到数据库和从数据库读取图片并显示

C# 图片保存到数据库和从数据库读取图片并显示 图片保存到数据库的方法: public void imgToDB(string sql) { //参数sql中要求保存的imge变量名称为@images //调用方法如:imgToDB("update UserPhoto set Photo=@images where UserNo='" + temp + "'"); FileStream fs = File.OpenRead(t_photo.Text); byte[] imageb = new byte[fs.Length]; fs.Read(imageb, 0, imageb.Length); fs.Close(); SqlCommand com3 = new SqlCommand (sql,con); com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb; if (com3.Connection.State == ConnectionState.Closed) com3.Connection.Open(); try { com3.ExecuteNonQuery(); } catch { } finally { com3.Connection.Close(); } } 数据库中读出图片并显示在picturebox中: 方法一: private void ShowImage(string sql) { //调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'"); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); byte[] b= (byte[])cmd.ExecuteScalar(); if (b.Length 〉0) { MemoryStream stream = new MemoryStream(b, true); stream.Write(b, 0, b.Length); pictureBox1.Image = new Bitmap(stream); stream.Close(); } conn.Close(); }

java实现图片或文件的上传功能实现代码

java实现图片或文件的上传功能具体思路及代码 一、思路 文件是如何从本地发送到服务器的呢? 首先,我们创建一个新的web工程,在工程的WebRoot目录下新建一个upload文件夹,这样当我们将该工程部署到服务器上时,服务器便也生成个upload文件夹,用来存放上传的资源。 然后,在WebRoot目录下新建一个jsp文件,主要实现的作用就是选择上传的文件,提交至servlet来进行处理 详细代码如下:一个form将文件信息通过post方式传送到指定的servlet 二、代码 复制代码代码如下: <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> "> My JSP 'upload.jsp' starting page

请选择上传的图片或文件:

Java使用JDBC连接MYSQL数据库增删改查示例

Java使用JDBC连接MYSQL数据库增删改查示例JDBC连接MYSQL数据库: import java.sql.Connection; import java.sql.DriverManager; public class Mysql { public static void main(String arg[]) { try { Connection con = null; //定义一个MYSQL链接对象 Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL 驱动 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL System.out.print("yes"); } catch (Exception e) { System.out.print("MYSQL ERROR:" + e.getMessage()); } }

} Class.forName("com.mysql.jdbc.Driver").newInstance(); 我们链接的是MYSQL 数据库,所以需要一个MYSQL的数据库驱动,如果你的环境中没有安装,可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,然后放进jdk1.6.0_37\jre\lib\ext 重启eclispe 就可以在JRE系统库中看到。 con = DriverManager.getConnection;("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); 是链接数据库的语句,返回Connection con;对象。参数格式:("jdbc:mysql://ip:端口/数据库名称", 用户名,密码) 写入一条数据 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Mysql { /**

上传图片及存到数据库

1.上传图片到指定的文件夹,并且把图片的路径存到数据库里面。 //判断上传是否有文件 if (FileUpload1.HasFile) { string filepath = FileUpload1.PostedFile.FileName.ToString(); //将图片保存到项目文件夹image里面 string fileName = System.IO.Path.GetFileName(filepath); string savePaht = Server.MapPath("images/" + fileName); FileUpload1.SaveAs(savePaht); string strSql = "insert into userInfo (userimage) values ('"+ filepath+"')"; // string strSql = "insert into userInfo (userimage) values (@image)"; //userInfo 是表名userimage是图片的字段 Sqlconnection conn=new Sqlconnection(@"数据库的连接字符串"); SqlCommand cmd = new SqlCommand(strSql, conn); conn.open(); //cmd.parameters.add("@image",sqldbtype.varchar,100).value="./image"+filepath; cmd.ExecuteNonQuery(); } 2.遍历文件夹里面的图片,显示在datalist里面 //获取图片所在的文件夹的路径 DirectoryInfo imagesfile = new DirectoryInfo(Server.MapPath("./images")); //绑定数据源 DataList1.DataSource = imagesfile.GetFiles("*.jpg"); DataList1.DataBind();

相关文档
最新文档