java中通过绝对路径将图片存入数据库

        一般的如果通过将图片的绝对路径存入数据库,然后通过java连接数据库来调用是行不通的,因为java不支持C:\file\test.txt这类格式,这样的路径转到数据库中则会变成c:flie  test.tex。甚至有时候遇到\t还会横向跳8个空格。基于这样的情况本人想到了一个笨方法:我们可以获取了图片的绝对路径后获取其名称,然后将该图片名称存入数据库,这样就不会产生冲突了。

具体步骤如下:1.获取文件的绝对路径(JFileChooser jfc = new JFileChooser(); String  fname = jfc.getSelectedFile().getAbsolutePath())

   2.  获取文件的名称:File file1 = new File(fname);PicRoad = file1.getName();

   3. 将该图片名称存入数据库

   4. 通过标签来显示从数据库调用出来的图片(       ImageIcon pic = new ImageIcon("G:/MyEclipse/Science/Picture/"+rs.getString("PicRoad"));       JLabel viewpict = new JLabel(pic);
)        PicRoad为图片存在数据库中的属性名。  

总结:通过将路径写死从而避免了将图片的绝对路径存入数据库。以此实现绝对路径的数据库存放。

部分代码演示:

JFileChooser jfc = new JFileChooser();
    if (jfc.showOpenDialog(addGoods.this) == JFileChooser.APPROVE_OPTION) // 解释下这里,弹出个对话框,可以选择要上传的文件,如果选择了,就把选择的文件的绝对路径打印出来
    {
     // /////////////////////////////添加图片
     System.out.println(jfc.getSelectedFile().getAbsolutePath());
     String fname = jfc.getSelectedFile().getAbsolutePath();
     // System.out.println(PicRoad);
     File file1 = new File(fname);
     PicRoad = file1.getName();
     System.out.println(file1.getName());
    }
while (rs.next()) {
       ImageIcon pic = new ImageIcon("G:/MyEclipse/Science/Picture/"+rs.getString("PicRoad"));
       System.out.println(pic);
       JLabel viewpict = new JLabel(pic);
       viewpict.setBounds(0, 0, 243, 224);
       viewpic.getContentPane().add(viewpict);
       
       rs.getString("PicRoad");
      }

     

你可能感兴趣的:(绝对路径,java中将图片存入数据库)