Java将图像插入数据库代码不起作用

时间:2012-11-29 10:05:19

标签: java runtime-error execution classnotfoundexception

As you can see that im in the current path of executing the java file.

正如您所看到的,我处于执行java文件的当前路径中。 当我编译程序时,我成功获得了一个类文件。 但是我运行它我无法执行该程序,因为我在图像中得到错误,告诉该路径中没有这样的类可用..

C:\Users\admin>javac insertImg.java

C:\Users\admin>java insertImg
Exception in thread "main" java.lang.NoClassDefFoundError: insertImg
Caused by: java.lang.ClassNotFoundException: insertImg
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: insertImg.  Program will exit.

C:\Users\admin>

这是我将图像插入数据库的java代码.....

insertImg.java:

import java.sql.*;
import java.io.*;

public class insertImg{
    public static void main(String[] args) {

        System.out.println("Insert Image Example!");
        String driverName = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://localhost:3306/";
        String dbName = "hibernatetutorial";
        String userName = "root";
        String password = "root";
        Connection con = null;

        try {
            Class.forName(driverName);
            con = DriverManager.getConnection(url+dbName,userName,password);
            Statement st = con.createStatement();

            File imgfile = new File("images.jpg");
            FileInputStream fin = new FileInputStream(imgfile);

            PreparedStatement pre = con.prepareStatement("insert into Image values(?,?,?)");
            pre.setInt(1,5);
            pre.setString(2,"Durga");
            pre.setBinaryStream(3,fin,(int)imgfile.length());
            pre.executeUpdate();

            System.out.println("Inserting Successfully!");

            pre.close();
            con.close();  

        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
} 

4 个答案:

答案 0 :(得分:0)

insertImg.java是否有一个insertImg类(注意区分大小写),它有一个公共main函数?

答案 1 :(得分:0)

我看到你从roseIndia获得了代码,它正在为我工​​作而没有任何障碍。然而,无论你展示什么,它仍然很奇怪..我的建议是使用像eclipse这样的IDE

您可以随时尝试以下步骤

1)在Mysql数据库中创建一个表以适应上面的代码

CREATE TABLE IMAGE
(
 IMG_ID    INT,
 IMG_NAME  VARCHAR2(100),
 IMG       BLOB
)

2)在eclipse中创建一个新的java项目并创建一个新类insertImg并将代码粘贴到那里。请确保您的图像文件路径与图像的位置相同并运行它。工作正常

答案 2 :(得分:0)

enter image description here

我已尝试使用Oracle数据库必须添加-classpath ojdbc.jar,它也可以从控制台中运行,如图所示 我在数据库中加载的图像文件在D:\中,因此它不在上面的屏幕截图中

希望这会有所帮助

答案 3 :(得分:0)

这是一个简单的类路径错误。 CLASSPATH环境变量允许Java知道在哪里查找类。

不幸的是,Java不够聪明,不知道它需要在本地目录中查找类。要解决此问题,您所要做的就是根据您使用的是Windows还是Linux / Unix来执行以下语句之一:

对于Windows:

set CLASSPATH=.;%CLASSPATH%

对于Linux:

export CLASSPATH=.:$CLASSPATH