java代码在mysql数据库中插入图像

标签 java

我正在尝试使用java代码插入图像, 我可以插入图像,但我的表格显示垃圾值 这是我的代码,
创建表的代码。

try {
    Connection con = null;
    Class.forName("com.mysql.jdbc.Driver");
    con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306 /Hotel",
           "root", "root");
      try {
        Statement st = con.createStatement();
        String table = "CREATE TABLE ItemMenu(Image MEDIUMBLOB,
          Item_Codevarchar(20),Item_Name varchar(20),
          Item_Category varchar(20),Sub_Category varchar(20),
          Item_Rate varchar(20),Item_Kitchen varchar(20),
          Item_Division varchar(20),Item_Description varchar(20))";
      st.executeUpdate(table);
    } catch (SQLException s) {
        System.out.println("Table all ready exists!");
    }
    con.close();
} catch (Exception e) {
    e.printStackTrace();
}    

用于将值插入表中的代码..

try {
    File f = new File(path);
    System.out.print(path);
    Connection con = null;
    Class.forName("com.mysql.jdbc.Driver");
    con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/Hotel", "root", "root123");

//这是从文本字段中获取值并将其存储在字符串中的代码。

try {
        FileInputStream fis = new FileInputStream(f);
        System.out.println("hello how r u");
        String itemcode = itemcodefield.getText();
        String itemname = itemnamefield.getText();
        String categoryboxname = (String) categorybox.getSelectedItem();
        String subcategoryboxname = (String) subcategorybox.getSelectedItem();
        String rate = ratefield.getText();
        String kitchenboxname = (String) kitchenbox.getSelectedItem();
        String divisionboxname = (String) divisionbox.getSelectedItem();
        String description = descriptionfield.getText();
        String insert = "INSERT INTO ItemMenu(Image,Item_Code,
        Item_Name,Item_Category,Sub_Category,Item_Rate,Item_Kitchen,
        Item_Division,Item_Description)" 
        + "VALUES (?,?,?,?,?,?,?,?,?)";
        System.out.println("am fyn");

//这里是 prepardstatemnt 的代码,它将值插入到 mysql 表中。

        PreparedStatement preparedStmt = con.prepareStatement(insert);
        preparedStmt.setBinaryStream(1, (InputStream) f(int)
        (f.length()
        ));            
        preparedStmt.setString(2, itemcode);
        preparedStmt.setString(3, itemname);
        preparedStmt.setString(4, categoryboxname);
        preparedStmt.setString(5, subcategoryboxname);
        preparedStmt.setString(6, rate);
        preparedStmt.setString(7, kitchenboxname);
        preparedStmt.setString(8, divisionboxname);
        preparedStmt.setString(9, description);
        preparedStmt.execute();
    } catch (SQLException s) {
    }
    con.close();
} (Exception e1){
    e1.printStackTrace();
}

最佳答案

我不知道您的应用程序设计,但通常建议不要将图像插入到数据库中,而是将图像保存到文件夹中,然后插入该文件夹的路径数据库。

插入图像将是一个性能问题。插入路径也会减少数据库大小,并且访问其他资源会更快。

关于java代码在mysql数据库中插入图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373313/

相关文章:

java - 如何在 IBM Tivoli Identity Manager 中添加角色

java - 无法在模拟器上从 developer.android.com 启动蓝牙聊天示例应用程序

java - 我该怎么做 "one-many"关系?

java - 将逗号分隔的字符串作为参数传递给数据库时

java - 使用原生 FS 时的 HBase 批量加载

java - 如何将@AutoFactory 与@AutoValue 类一起使用?

java - (opendj-ldap-sdk-2.6.0) 绑定(bind)方法参数-密码字符[ ]

java - 如何在不关闭整个程序的情况下从 JTextFields 中清除变量?

java - Log4j : Creating/Modifying appenders at runtime, 日志文件重新创建但未附加

java - Jenkins/Maven增量构建麻烦