mysql中怎样插入图片


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

mysql中怎样插入图片

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、实现图像存储类

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

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

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

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

php订单系统可以整合支付宝接口 php订单系统可以整合支付宝接口

一、系统设置:用Dreamwe*er等网页设计软件在代码视图下打开【dddingdan/config.php】系统设置文件,按注释说明进行系统设置。 二、系统使用:WFPHP在线订单系统是无台后的,不用数据库,也不用安装,解压源码包后,先进行系统设置,然后把整个【dddingdan】文件夹上传到服务器。在网页中要插入订单系统的位置,插入系统调用代码: 注意:id=01就表示使用样式01,如果要使

php订单系统可以整合支付宝接口 0 查看详情 php订单系统可以整合支付宝接口
import j*a.sql.Connection;
import j*a.sql.DriverManager;
import j*a.sql.SQLException;
  
public class LoadDriver {
  public static void main(String[] args) {
    try {
      // The newInstance() call is a work around for some
      // broken J*a 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 j*a.io.File;
import j*a.io.FileInputStream;
import j*a.sql.Connection;
import j*a.sql.DriverManager;
import j*a.sql.PreparedStatement;
import j*a.sql.ResultSet;
import j*a.sql.SQLException;
  
/**
 * This class describes how to store picture file into MySQL.
 * @author Yanjiang Qian
 * @version 1.0 Jan-02-2006
 */
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;
  }
   
  /**
   * Start point of the program
   * @param args CMD line
   */
  public static void main(String[] args) {
    if(args.length != 1) {
      System.err.println("j*a 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教程(视频)

以上就是mysql中怎样插入图片的详细内容,更多请关注其它相关文章!


# 要在  # 广州网站推广技巧培训  # 瑞金建设局网站  # 佛山seo超联SEO¥  # seo外链推广厂家  # 信息流推广营销心得  # 设计网站优化  # 网站推广优化皆选科杰  # 兰州矩阵seo软件  # seo从业心得  # 联雅seo售价  # mysql  # 第一个  # 会有  # 第三个  # 解锁  # 系统设置  # 支付宝  # 镜像  # 的是  # 插入图片 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 优化Google Charts Gauge:在数据库无数据时显示默认值  顺丰官方查单号入口 顺丰快递单号查询官网入口  《一起考教师》账号注销方法  Win10通知横幅停留时间修改 Win10自定义通知显示时长【技巧】  如何快速去除厨房重油污? 2025年最好用的厨房清洁剂推荐  《搜书吧》阅读书籍方法  易车网官网直达入口 易车网在线登录入口  uc浏览器官网网页版使用 uc浏览器官网免费在线首页  在Peewee中处理PostgreSQL记录重复:一站式数据摄取教程  天天漫画2025最新入口 天天漫画永久有效登录入口  悟空浏览器如何恢复关闭的标签页 悟空浏览器撤销关闭网页快捷键设置  热血江湖归来医师加点攻略  OPPO手机参数配置如何开启护眼模式_OPPO手机参数配置护眼模式开启指南  繁花漫画使用教程  网易云音乐闹钟铃声设置教程  解决jQuery多计算器输入字段冲突的教程  如何使用 composer 和 aop-php 实现 AOP 编程?  PHP动态导航按钮:根据用户登录状态切换链接与文本  为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践  Lar*el如何创建自定义的辅助函数(Helpers)_Lar*el全局函数定义与加载方法  在J*a里什么是行为抽象_抽象行为对代码复用的提升作用  之了课堂app做题入口  sublime如何配置PHP开发环境_在sublime中运行与调试PHP代码  外卖小程序对接第三方配送  美发店速赢秘籍  Mac hosts文件在哪里_Mac修改hosts文件详细教程  在PySimpleGUI中实现键盘按键绑定按钮事件  在Spring Boot Thymeleaf中利用布尔属性实现容器的条件显示  抖音猜你想搜能说明对方搜过吗  rabbitmq 持久化有什么缺点?  WPS长文档分栏排版不乱方法_WPS分栏+分节符报纸排版教程  顺丰速运官网查询入口 顺丰物流查询官网入口链接  除了Copilot,还有哪些值得一试的VS Code AI插件?  德邦快递会员怎么开通  《大润发优鲜》充值方法介绍  RxJS中如何高效地在一个函数内处理和合并多个数据集合  汽水音乐官方网站登录入口_汽水音乐网页版进入链接  Golang如何使用log记录日志信息_Golang log日志记录方法总结  人教版电子教材在线获取指南  Win10如何关闭操作中心通知 Win10免打扰设置全攻略【清爽】  word文档行距怎么调?word文档调行距的操作步骤  c++如何掌握指针的核心用法_c++指针入门到精通指南  《火影忍者:木叶高手》快速升级攻略  广州地铁app准妈咪徽章领取方法  Python测试中模块导入路径解析的最佳实践  《KARDS》冬季扩展包“国土阵线”上线!全新“协力”机制改变战场格局  《淘宝联盟》推广自己的店铺方法  163邮箱网页版官方登录入口 163邮箱网页版访问页面  风神瞳获取全攻略  在Django单元测试中优雅处理信号:基于环境的条件执行策略 

 2020-10-13

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.