mysql插入图片代码,MySQL插入图片有关问题

MySQL插入图片问题

package com.wow.lob;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import java.net.URL;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import org.junit.Test;

import com.wow.util.JDBCUtil;

/*

这个是创建的表

create table test2

(

id int primary key auto_increment,

image longblob

);

*/

public class Demo2 {

@Test

public static void insert() throws Exception{

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

try{

conn = JDBCUtil.getConection();

String sql = "insert into test2(image) values(?)";

ps = conn.prepareStatement(sql);

URL url = Demo2.class.getClassLoader().getResource("1.jpg");

File file = new File(url.getPath());

ps.setBinaryStream(1, new FileInputStream(file), file.length());

int num = ps.executeUpdate();

if(num>0){

System.out.println("插入成功");

}

}finally{

JDBCUtil.myClose(rs, ps, conn);

}

}

我想问下,为什么程序一执行到int num = ps.executeUpdate();  就出异常,说我sql语句有问题。二进制数据这么插入没错吧?求大神!!!

------最佳解决方案--------------------

你妹的,帮你找这个错误,害得耽误了我一个小时。记得把分都给我哈

帮你找到原因了,你的代码没有写错,错误的事你的mysql的数据库编码

下面是我的编码:

public class Test {

public static void main(String[] args) throws SQLException {

Connection conn = null;

PreparedStatement ps = null;

ResultSet rs = null;

try {

conn = JDBCUtil.getConection();

String sql = "insert into pic values(?,?,?)";

ps = conn.prepareStatement(sql);

File file = new File("c:/a.jpg");

FileInputStream fis = new FileInputStream("c:/a.jpg");

ps.setInt(1, 1);

ps.setString(2, "a.jpg");

ps.setBinaryStream(3, fis, (int)file.length());

int num = ps.executeUpdate();

if (num > 0) {

System.out.println("插入成功");

}else{

System.err.println("插入失败");

}

}catch (Exception e) {

e.printStackTrace();

} finally {[code=Java]

JDBCUtil.myClose(rs, ps, conn);

}

}

}

[/code]

之前我的MySQL数据库是GBK,也是

int num = ps.executeUpdate();

报错如下:

用MySQL的配置工具MySQLInstanceConfig.exe  ,将MySQL数据库编码改成 : utf8后。

操作成功,截图如下:

------其他解决方案--------------------

你的逻辑代码执行的顺序错了

String sql = "insert into test2(image) values(?)";

ps = conn.prepareStatement(sql);这里还没有获得你要插入的值呢

------其他解决方案--------------------

刚刚看错了.......

你的sql报的是什么错,打印下你的sql语句,看看插进去的是什么,或者打印下你获得的图片路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值