有一个比较简单的方法可以得到这个类型名称
通过
resultSet
=
statementexecuteQuery("select
image列
from
table");
resultSetMetaData
=
resultSetgetMetaData();
Systemoutprintln(resultStetMetaDatagetColumnClassName(1));
你说的这个问题,其实是表的设计问题。
只要在t_b中,设计列为3列即可。
id
,
t_a_id
,
picture
添加多个,不过是sql、语句。
最简单的办法,是利用for()循环,如:
for(int
i
=
0;i<数;i++){
//你的sql *** 作语句如。
//insert
i
into
t_b
}
分给偶吧。。
^
^!
我这里给你介绍下在struts框架下的上传的三步。
1、在pojo里,把字段设置为byte[]类型
private byte[] image;
2、如果是采用struts的话,只需要
setImage(formbeangetImage()getFileData());
前提是定义一个formbean类,使用getFileData()方法将类型转化为byte[]类型。
3、在前台页面里这样,上传的控件名称为image,类型为file
<input type="file" name="image" size="30" value="">
将插入数据库时,首先将转换成二进制格式,同样读取的时候将二进制再解析回来就OK了
解析二进制:
int length = 0;
ServletOutputStream toClient = null;
byte[] buf = null;
Blob image = dengjigetTupian(); //dengji 实体 从数据库中获取
try {
length = (int)imagelength();//取得流中可用的字节总数
buf = imagegetBytes(1, length);//获取Blob字节数组
thisgetResponse()setContentType("image/jpeg");
thisgetResponse()setHeader("Pragma", "No-cache");
thisgetResponse()setHeader("Cache-Control", "no-cache");
thisgetResponse()setDateHeader("Expires", 0);
toClient = thisgetResponse()getOutputStream();//获取输出流
for(int i = 0 ; i < buflength ; i++ ){
toClientwrite(buf[i]);//输出到页面
}
toClientclose();//关闭输出流
} catch (SQLException e) {
eprintStackTrace();
} catch (IOException e) {
eprintStackTrace();
}
如果要存数据库的话,数据库存字段用blob形式的(照片:zp为例)。
而且不能直接存,在存之前zp字段先插入一个emptyBLOB(),
然后select ZP from 表 for update。再用输入流的形式写进去。
// 先检索出来字段,必须使用oracle的类:oraclesqlBLOB
oraclesqlBLOB blob = null;
if (rsnext())
{
blob = (oraclesqlBLOB) rsgetBlob("ZP");
// 到数据库的输出流
OutputStream outStream = blobgetBinaryOutputStream();
// 将输入流写到输出流
byte[] b = new byte[blobgetBufferSize()];
int len = 0;
while ((len = isread(b)) != -1)
{
outStreamwrite(b, 0, len);
// blobputBytes(1,b);
}
isclose();
outStreamflush();
outStreamclose();
}
取照片的话,取出来转化成流的形式直接创建jpg文件就行了。
Blob b = rsgetBlob("ZP");
File f = null;
if (b != null) {
is = bgetBinaryStream();
f = new File( "c:\\zpjpg");
if (!fexists()) {
fcreateNewFile();
}
os = new FileOutputStream(f);
int len;
byte buf[] = new byte[2048];
while ((len = isread(buf)) != -1) {
oswrite(buf, 0, len);
}
isclose();
osflush();
osclose();
}
强烈建议只存取照片路径,这样方便。
我以前也碰到过这个问题,
数据库这一块的话是 存的路径(注意相对路径跟绝对路径),就保存到服务器中就可以了。
ueditor没用过 以前用的是fckeditor,可以去ueditor的官网看下。
这里有个ueditor的配置 看下咯>
java基本上可以任何数据库进行连接,比如:mysql,sqlserver,oracle等,只是连接的方式,驱动不同罢了。
存的问题:一般来讲都是存的路径,如果你非要存也能存,需要把转换成二进制字节,进行存储。
如果强调安全,存二进制。
如果强调方便,存路径。
以上就是关于java如何将图片类型的数据存入mysql 数据库全部的内容,包括:java如何将图片类型的数据存入mysql 数据库、用java如何一次性上传多张图片到数据库、求java把图片写入mysql数据库的代码!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)