返回顶部
首页 > 资讯 > 数据库 >mysql中插入图片的方法
  • 661
分享到

mysql中插入图片的方法

2024-04-02 19:04:59 661人浏览 薄情痞子
摘要

小编给大家分享一下Mysql中插入图片的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql中插入图片的方法:首先要在数

小编给大家分享一下Mysql中插入图片的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

mysql中插入图片的方法:首先要在数据库中建表;然后装载JDBC驱动,建立连接;最后创建Statement接口类,来执行sql语句即可。

mysql中插入图片的方法:

1、首先,先要在数据库中建表。我在名为test的数据库下建立了一个叫pic的表。该表包括3列,idpic, caption和img。其中idpic是主键,caption是对图片的表述,img是图像文件本身。建表的SQL语句如下:

DROP TABLE IF EXISTS `test`.`pic`;
CREATE TABLE `test`.`pic` (
 `idpic` int(11) NOT NULL auto_increment,
 `caption` varchar(45) NOT NULL default '',
 `img` longblob NOT NULL,
 PRIMARY KEY (`idpic`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

将上面的语句输入到命令行中(如果安装了Query Brower, 你可以按照参考[1]中的指示来建表,那样会更加方便。),执行,表建立成功。

2、实现图像存储类

表完成后,我们就开始写个Java类,来完成向数据库中插入图片的操作。我们知道,Java与数据库连接是通过JDBC driver来实现的。我用的是MySQL网站上提供的MySQL Connector/J,如果你用的是其他类型的driver, 在下面的实现过程中可能会有些许差别。

2.1、装载JDBC驱动,建立连接

jdk中提供的DriverManager接口用来管理Java Application 和 JDBC Driver之间的连接。在使用这个接口之前, DriverManager需要知道要连接的JDBC 驱动。最简单的方法就是用Class.forName()来向DriverManager注册实现了java.sql.Driver 的接口类。对MySQL Connector/J来说,这个类的名字叫com.mysql.jdbc.Driver。

下面这个简单的示例说明了怎样来注册Connector/J Driver。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
  
public class LoadDriver {
  public static void main(String[] args) {
    try {
      // The newInstance() call is a work around for some
      // broken Java implementations
      Class.forName("com.mysql.jdbc.Driver").newInstance();
       
      // Connection con = DriverManager.getConnection(……)
      // ……
    } catch (Exception ex) {
      // handle the error
    }
}

向DriverManager注册了驱动后,我们就可以通过调用 DriverManager.getConnection()方法来获得和数据库的连接。其实在上面的例子中就有这条语句,只不过被注释掉了。在后面的实现中会有完整的例子。

2.2、PreparedStatement

完成上面的步骤后,我们就可以同过建立的连接创建Statement接口类,来执行一些SQL语句了。在下面的例子,我用的是PreparedStatement,还有CallableStatement,它可以执行一些存储过程和函数,这里不多讲了。

下面的代码片断是向pic表中插入一条记录。其中(1)处Connection接口的对象con通过调用prepareStatement 方法得到预编译的SQL 语句(precompiled SQL statement);(2)处是为该insert语句的第一个问号赋值,(3)为第二个赋值,(4)为第三个,这步也是最该一提的,用的方法是setBinaryStream(),第一个参数3是指第三个问号,fis是一个二进制文件流,第三个参数是该文件流的长度。

PreparedStatement ps;
…
ps = con.prepareStatement("insert into PIC values (?,?,?)"); // (1)
ps.setInt(1, id); //(2)
ps.setString(2, file.getName()); (3)
ps.setBinaryStream(3, fis, (int)file.length()); (4)
ps.executeUpdate();
…

2.3、完整代码

上面列出了完整的代码。

package com.forrest.storepic;
 import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
  

public class StorePictures {
   
  private String dbDriver;
  private String dbURL;
  private String dbUser;
  private String dbPassWord;
  private Connection con;
  private PreparedStatement ps; 
  
  public StorePictures() {
    dbDriver = "com.mysql.jdbc.Driver";
    dbURL = "jdbc:mysql://localhost:3306/test";
    dbUser = "root";
    dbPassword = "admin";
    initDB();
  }
   
  public StorePictures(String strDriver, String strURL,
      String strUser, String strPwd) {
    dbDriver = strDriver;
    dbURL = strURL;
    dbUser = strUser;
    dbPassword = strPwd;
    initDB();
  }
  
  public void initDB() {
    try {
      // Load Driver
      Class.forName(dbDriver).newInstance();
      // Get connection
      con = DriverManager.getConnection(dbURL,
          dbUser, dbPassword);      
    } catch(ClassNotFoundException e) {
      System.out.println(e.getMessage());
    } catch(SQLException ex) {
      // handle any errors
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
  
    } catch (Exception e) {
      System.out.println(e.getMessage());
    }
  }
  
  public boolean storeImg(String strFile) throws Exception {
    boolean written = false;
    if (con == null)
      written = false;
    else {
      int id = 0;
      File file = new File(strFile);
      FileInputStream fis = new FileInputStream(file);
       
      try {       
        ps = con.prepareStatement("SELECT MAX(idpic) FROM PIC");
        ResultSet rs = ps.executeQuery();
         
        if(rs != null) {
          while(rs.next()) {
            id = rs.getInt(1)+1;
          }
        } else {    
          return written;
        }
         
        ps = con.prepareStatement("insert "
            + "into PIC values (?,?,?)");
        ps.setInt(1, id);
        ps.setString(2, file.getName());
        ps.setBinaryStream(3, fis, (int) file.length());
        ps.executeUpdate();
         
        written = true;
      } catch (SQLException e) {
        written = false;
        System.out.println("SQLException: "
            + e.getMessage());
        System.out.println("SQLState: "
            + e.getSQLState());
        System.out.println("VendorError: "
            + e.getErrorCode());
        e.printStackTrace();
      } finally {       
        ps.close();
        fis.close();
        // close db con
        con.close();
      }
    }
    return written;
  }
   
  
  public static void main(String[] args) {
    if(args.length != 1) {
      System.err.println("java StorePictures filename");
      System.exit(1);
    }
    boolean flag = false;
    StorePictures sp = new StorePictures();
    try {
      flag = sp.storeImg(args[0]);
    } catch (Exception e) {
      e.printStackTrace();
    }
    if(flag) {
      System.out.println("Picture uploading is successful.");
    } else {
      System.out.println("Picture uploading is failed.");
    }
  }
}

以上是mysql中插入图片的方法的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: mysql中插入图片的方法

本文链接: https://lsjlt.com/news/52503.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql中插入图片的方法
    小编给大家分享一下mysql中插入图片的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql中插入图片的方法:首先要在数...
    99+
    2024-04-02
  • Android中TextView显示插入的图片实现方法
    本文实例讲述了Android中TextView显示插入的图片实现方法。分享给大家供大家参考,具体如下: Android系统默认给TextView插入图片提供了三种方式: 1、I...
    99+
    2022-06-06
    方法 图片 Android
  • CSS插入、设置和映射图片的方法
    今天小编给大家分享一下CSS插入、设置和映射图片的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • gitee中怎么插入图片
    在使用gitee中,插入图片是一项常用的功能。无论是编辑README文档,还是在博客中添加图片,都需要掌握插入图片的方法。在本篇文章中,我们将会介绍在gitee中如何插入图片。第一步:上传图片首先,我们需要把要插入的图片上传到gitee中。...
    99+
    2023-10-22
  • 如何在html中插入图片
    这期内容当中小编将会给大家带来有关如何在html中插入图片,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开...
    99+
    2023-06-14
  • Python实现向PPT中插入表格与图片的方法详解
    目录插入表格插入图片上一章节学习了如何在 PPT 中添加段落以及自定义段落(书写段落的内容以及样式的调整),今天的章节将学习在 PPT 中插入表格与图片以及在表格中插入内容。 废话不...
    99+
    2024-04-02
  • 在MySQL中插入日期的方法
    在MySQL中插入日期的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!MySQL提供了几种数据类型,用于在其数据库系统...
    99+
    2024-04-02
  • JavaGUI插入图片不显示问题解决方法
    问题描述: 在学习使用Java的GUI时,插入图片但是不显示代码如下所示: public abstract class AbstractMainFrame extends JFram...
    99+
    2024-04-02
  • html怎么插入图片
    小编给大家分享一下html怎么插入图片,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! <img src="目标文件路径及全称" alt="图片替换文本...
    99+
    2024-04-02
  • html图片如何插入
    这篇文章主要介绍html图片如何插入,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开发者使用。2、可扩展性:超级文本标...
    99+
    2023-06-14
  • Css怎么插入图片
    小编给大家分享一下Css怎么插入图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css的全称是什么css的全称是Cascading Style Sheets(层...
    99+
    2023-06-14
  • HTML如何插入图片
    这篇文章主要为大家展示了“HTML如何插入图片”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML如何插入图片”这篇文章吧。在开发网页时,我们免不了要插入图片,以增强用户体验感。那么,在 HT...
    99+
    2023-06-27
  • win8图片库加入图片的方法介绍
    Win8系统中的Metro界面真是灰常漂亮啊,我就喜欢在这界面下用不过可以用的软件真是少。Metro界面中的相片下的图片库,你打开是不是也提示没有图片呢小编教你怎么给图片库里加入图片,5步添加完成。切换到M...
    99+
    2022-06-04
    图片库 方法 图片
  • 往mysql中添加图片的方法
    这篇文章给大家分享的是有关往mysql中添加图片的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。往mysql中添加图片的方法:首先创建一个方法使用FileInputStrea...
    99+
    2024-04-02
  • Vue页面中引入img图片的方法
    我们在学习html的时候,图片标签<img>引入图片 <img src="../assets/images/avatar.png" width="100%"&...
    99+
    2024-04-02
  • 把图片存储在mysql中的方法
    这篇文章主要介绍把图片存储在mysql中的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!把图片存储在mysql中的方法:1、获取需要保存的图片;2、将图片上传到指定路径下的文件夹...
    99+
    2024-04-02
  • 将图片添加到mysql中的方法
    小编给大家分享一下将图片添加到mysql中的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!将图片添加到mysql中的方法:首先将数据库存储图片的字段类型设置为blob二进制大对象类型;然后...
    99+
    2024-04-02
  • Python xlwings如何插入Excel图片
    小编给大家分享一下Python xlwings如何插入Excel图片,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!测试图片一、相对路径(报错)使用相对路径插入会报...
    99+
    2023-06-06
  • html中插入flash的方法
    这篇文章将为大家详细讲解有关html中插入flash的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html是什么html的全称为超文本标记语言,它是一种标记语言,包含了一系列标签.通过这些标签可以将...
    99+
    2023-06-15
  • 聊聊php中插入图片不显示的原因
    在PHP中插入图片并不是一个难题,但有时候你可能会遇到图片不显示的问题。如果你遇到了这个问题,可能是由于以下几个原因所造成的:图片路径错误当你在PHP中插入图片时,你需要指定图片的路径。如果路径不正确,你插入的图片将无法显示。如果你的图片路...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作