mysql数据库插入图片_向MySql数据库插入与读取图片文件

这篇博客介绍了如何使用Java将图片插入到MySQL数据库中,并提供了详细的代码示例。通过FileInputStream读取图片文件,然后使用PreparedStatement的setBinaryStream方法设置到SQL语句中。同时,还展示了如何从数据库读取图片。数据库表结构为userinfo,包含id、username、password和image(longblob类型)四列。
摘要由CSDN通过智能技术生成

1、插入图片

import java.io.FileInputStream;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class TestAdd {

/**java

测试向mysql添加大字段

*/

public void testAdd() {mysql

// 1.create sql ;

String sql = "insert into userinfo ( username , password , image) values (?,?,?)";android

// 2.get connection

Connection conn = null;sql

PreparedStatement psmt = null;数据库

InputStream is = null; 测试

try {code

conn = JdbcHelper.getConnection(); 图片

// 3.prepare sql

psmt = conn.prepareStatement(sql);资源

// 4.set paramsrem

psmt.setString(1, "javaee");

psmt.setString(2, "123456");

// (1)get the stream

is = new FileInputStream("F:/androidgo/院内信息资源整合系统创建.bmp");

psmt.setBinaryStream(3, is, is.available());

// 5.update db

psmt.executeUpdate();

System.out.println("ok!");

} catch (Exception e) {

e.printStackTrace();

} finally {

// 6.close db

try {

if (psmt != null)

psmt.close();

if (conn != null)

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

TestAdd test = new TestAdd();

test.testAdd();

}

}2、获取图片import java.io.FileInputStream;

import java.io.InputStream;

import java.sql.Connection;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class TestAdd {

/**

测试向mysql添加大字段

*/

public void testAdd() {

// 1.create sql ;

String sql = "insert into userinfo ( username , password , image) values (?,?,?)";

// 2.get connection

Connection conn = null;

PreparedStatement psmt = null;

InputStream is = null;

try {

conn = JdbcHelper.getConnection();

// 3.prepare sql

psmt = conn.prepareStatement(sql);

// 4.set params

psmt.setString(1, "javaee");

psmt.setString(2, "123456");

// (1)get the stream

is = new FileInputStream("F:/androidgo/院内信息资源整合系统创建.bmp");

psmt.setBinaryStream(3, is, is.available());

// 5.update db

psmt.executeUpdate();

System.out.println("ok!");

} catch (Exception e) {

e.printStackTrace();

} finally {

// 6.close db

try {

if (psmt != null)

psmt.close();

if (conn != null)

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

public static void main(String[] args) {

TestAdd test = new TestAdd();

test.testAdd();

}

}

3、助手类

import java.sql.Connection;

import java.sql.DriverManager;

/**

@author Administrator

=====================返回数据库的链接信息==========================

*/

public class JdbcHelper {

private static Connection conn;

private JdbcHelper() {

}

// get the connection to db

public static synchronized Connection getConnection() throws Exception {

if (conn == null)

initConnection();

else if (conn.isClosed())

initConnection();

return conn;

}

//

private static void initConnection() throws Exception {

Class.forName("com.mysql.jdbc.Driver");

conn = DriverManager.getConnection("jdbc:mysql://192.168.1.101:3306/android",

"root", "123456");

}

}

4、数据库文件CREATE TABLE userinfo ( id int(10) unsigned NOT NULL auto_increment, username varchar(45) default NULL, password varchar(45) default NULL, image longblob, PRIMARY KEY (id)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值