当前位置:首页 » 操作系统 » java图片存入数据库

java图片存入数据库

发布时间: 2022-05-09 06:25:15

java数据库可以连接,但是怎么把图片放到数据库中。

java基本上可以任何数据库进行连接,比如:mysql,sqlserver,oracle等,只是连接的方式,驱动不同罢了。

存图片的问题:一般来讲都是存的路径,如果你非要存图片也能存,需要把图片转换成二进制字节,进行存储
如果强调安全,存二进制。
如果强调方便,存路径。

㈡ java怎样把图片保存到数据库然后读出来在html中显示

一般是将图片本体存放到OSS,图片的路径存放到数据库,然后jsp中获取的是他的路径
然后用<img src="OSS的链接/"+你数据库的图片路径> 你可以用本地图片试试 将图片本体存放在你的E盘/image下面 然后你存入数据库的是你的图片名 然后将图片上传到本地 然后使用<img src='E盘/image'+数据库里面的图片名> 就可以显示了 你可以试试

㈢ 如何在Java程序中选择添加图片,再存到数据库中

存储图片:

//加载驱动程序类
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
//建立数据库联机,其中denglu为数据库名,sa为连接数据库的帐号及密码。
Statement stmt=con.createStatement(); //建立Statement对象

FileInputStream str=new FileInputStream(filename); //图片文件路径
String sql="insert into picturenews(id,image) values(?,?,?)";
PreparedStatement pstmt=con.prepareStatement(sql);
pstmt.setString(1,id); //ID号
pstmt.setBinaryStream(2,str,str.available()); //图片数据
pstmt.execute();
//将数据存入数据库
out.println("Success,You Have Insert an Image Successfully");

图片读取:

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con=DriverManager.getConnection("jdbc:odbc:denglu","sa","sa");
Statement stmt=con.createStatement();
ResultSet rs=null;
String sql = "select image from picturenews WHERE id="+id;

rs=stmt.executeQuery(sql);
if(rs.next()) {
//图片输出的输出流
InputStream in = rs.getBinaryStream("image");
byte b[] = new byte[0x7a120];
for(int i = in.read(b); i != -1;)
{
//将缓冲区的输入输出到页面
in.read(b);
}
}

/**
* 获得数据后可以按照自己的方法进行处理或者显示
*/
JLabel label=new JLabel(new ImageIcon(b)); //用JLabel进行显示

.....

㈣ Java web开发中怎么把图片存入数据库

两种方式:

  1. 把图片转换 ‘流数据’ 直接存在数据库图片字段中。

  2. 把图片 ‘流数据’ 存在文件夹内,数据库字段存对应图片地址。

    第一种因为是直接存图片数据,写入读取比第二种慢,会占用数据库资源。

    硬盘速度 > 数据库

    图片转换成流数据,流转换成图片,具体方法你需要搞懂。看博客看到的。(我也没写过 [滑稽])

㈤ java如何将图片保存在数据库中

一般都是这样的,就是在你服务器有一个专门放置图片的文件夹,然后数据库保存的是你服务器图片的路径。需要用的时候就去数据库里面取路径。得到路径以后你想怎么处理图片是你的事情了。
至于如何去数据库取路径这个就是简单的db操作。
加载驱动类:
Class.forName(DBDriver);
获取连接:
Connection
conn
=
DriverManager.getConnection(url,username,password);
创建操作对象:
PreparedStatement
stmt
=
con.prepareStatement(sql);
执行操作:
ResultSet
rs
=
stmt.executeQuery();
遍历结果:
List
list
=
new
ArrayList();
while(rs.next()){
//具体操作,通常用rs.getString(name)取值
Image
img
=
new
Image();//图片类对应你数据库中图片表格
img.setSrc(rs.getString("src"));//假设你数据库中image表中图片地址字段是src
list.add(img);
}
记得关闭资源:
rs.close();
stmt.close();
con.close();
看你的意思是已经取出来了不知道怎么显示:
你取出来之后可以把图片放在一个list里面然后去页面上遍历这个list
<c:forEach
var="chakan1"
items="list">
<tr>
<td>
<img
src="${chakan1.src}"/>
</td>
</tr>
</c:forEach>
大致应该是这样

㈥ 在java中如何将图片保存到数据库

存取图片就是二进制数据的存取问题
把图片以文件的时候读入到程序中
转换成byte
以byte显示保存到数据库中
另外,access保存文件~~不合适~
---------------------------
显示和存储没关系,看你要怎么显示了~显示到浏览器?

㈦ 用java语言我怎么把图片存放到数据库然后在取出来啊

如果要存数据库的话,数据库存图片字段用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();
}
强烈建议只存取照片路径,这样方便。

㈧ java如何将图片类型的数据存入mysql 数据库

有一个比较简单的方法可以得到这个类型名称

通过
resultSet = statement.executeQuery("select image列 from table");
resultSetMetaData = resultSet.getMetaData();
System.out.println(resultStetMetaData.getColumnClassName(1));

㈨ java如何存储图片到数据库,存路径和二进制是什么意思

一种方法是把图像文件本身放在某个文件夹里,然后在数据表里设一个“路径“字段,类型为字符串,存图像的路径(比如“D:\files\xxx.jpg”)。
另一种方法是,把图像文件本身,作为一个巨大的二进制数据,放在数据库中;具体方法是,数据表中设置一个”数据“字段,类型是二进制数据,存放图像本体。

热点内容
2013年二级c语言真题 发布:2024-10-08 10:44:47 浏览:242
linux的locale 发布:2024-10-08 10:44:36 浏览:91
2rsa算法 发布:2024-10-08 10:29:53 浏览:542
南京社保密码多少 发布:2024-10-08 10:21:01 浏览:472
国内的少儿编程 发布:2024-10-08 10:21:00 浏览:520
vscode编译调试闪退 发布:2024-10-08 10:19:27 浏览:671
oracle数据库用户权限 发布:2024-10-08 09:46:00 浏览:708
立方的算法口诀 发布:2024-10-08 09:44:30 浏览:820
python输入到excel表格 发布:2024-10-08 09:36:31 浏览:285
脚本拒绝访问闪退 发布:2024-10-08 09:34:55 浏览:939