只要在t_b中,设计列为3列即可。
id
,
t_a_id
,
picture
添加多个图片,不过是sql、语句。
最简单的办法,是利用for()循环,如:
for(int
i
=
0i<图片数i++){
//你的sql操作语句如。
//insert
图片i
into
t_b..
}
分给偶吧。。
^
^!
存储图片是后端服务器比较基础的功能,一般来说,图片可以存储在服务器的文件系统中,然后数据库中只需要存储url就可以了。另外一种办法是,将图片通过Base64编码后存储到数据库中,数据库中存储图片的base64编码的二进制可以使用TEXT(mysql)类型。如果要存数据库的话,数据库存图片字段用blob形式的(照片:zp为例)。而且不能直接存,在存之前zp字段先插入一个empty.BLOB(),
然后select ZP from 表 for update。再用输入流的形式写进去。
// 先检索出来字段,必须使用oracle的类:oracle.sql.BLOB
oracle.sql.BLOB blob = null
if (rs.next())
{
blob = (oracle.sql.BLOB) rs.getBlob("ZP")
// 到数据库的输出流
OutputStream outStream = blob.getBinaryOutputStream()
// 将输入流写到输出流
byte[] b = new byte[blob.getBufferSize()]
int len = 0
while ((len = is.read(b)) != -1)
{
outStream.write(b, 0, len)
// blob.putBytes(1,b)
}
is.close()
outStream.flush()
outStream.close()
}
取照片的话,取出来转化成流的形式直接创建jpg文件就行了。
Blob b = rs.getBlob("ZP")
File f = null
if (b != null) {
is = b.getBinaryStream()
f = new File( "c:\\zp.jpg")
if (!f.exists()) {
f.createNewFile()
}
os = new FileOutputStream(f)
int len
byte buf[] = new byte[2048]
while ((len = is.read(buf)) != -1) {
os.write(buf, 0, len)
}
is.close()
os.flush()
os.close()
}
强烈建议只存取照片路径,这样方便。