- 浏览: 75018 次
- 性别:
- 来自: 西安
文章分类
OS WindowsXP MyEclipse7.0 mysql5.0
在mysql 建立一张photo 的表
图片类型在mysql 中的列类型是Blob; Java中是java.sql.Blob类型
在mysql 中的jdbc
用hibenate.cfg.xml
Photo.hbm.xml 文件
程序文件SessionFactory .java
pojo 文件
session操作文件
在mysql 建立一张photo 的表
图片类型在mysql 中的列类型是Blob; Java中是java.sql.Blob类型
create table photo( id int not null auto_increment primary key , pname varchar(30) not null , myphoto blob );
在mysql 中的jdbc
package com.lyx.util; import java.sql.*; import java.io.*; public class MyBlob { /* * create table photo( id int not null auto_increment primary key , pname * varchar(30) not null , myphoto blob ); */ public Connection getConn() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/mydb", "root", "791129"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } //fromFileName 有保证文件存在 public void add( String fromFileName, String toFileName) { Connection conn = this.getConn(); PreparedStatement ps; try { ps = conn.prepareStatement("insert into photo( pname , myphoto) values(?,?)"); ps.setString(1, toFileName); File file = new File(fromFileName); InputStream in; in = new BufferedInputStream(new FileInputStream(file)); ps.setBinaryStream(2, in, (int) file.length()); int count = 0; count = ps.executeUpdate(); if(count==1) { System.out.println("插入数据成功!"); }else { System.out.println("插入数据失败!"); } in.close(); ps.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); }catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void getAll(){ String sql = "select *from photo"; Connection conn = this.getConn(); PreparedStatement ps; try { ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); int j=0; while (rs.next()) { InputStream ins = null; OutputStream out = null; j++; System.out.println(rs.getInt(1) + "\t" + rs.getString(2)); Blob blob= rs.getBlob("myphoto"); ins = blob.getBinaryStream(); File f = new File(rs.getString(2)); out = new BufferedOutputStream(new FileOutputStream(f)); byte[] buf = new byte[1024]; int i = 0; while ((i = ins.read(buf)) != -1) { out.write(buf); } ins.close(); out.close(); } rs.close(); ps.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void get(int id) { String sql = "select *from photo where id= ?"; Connection conn = this.getConn(); PreparedStatement ps; try { ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); File f = null; InputStream ins = null; OutputStream out = null; Blob blob =null; while (rs.next()) { System.out.println(rs.getInt(1) + "\t" + rs.getString(2)); blob= rs.getBlob("myphoto"); ins = blob.getBinaryStream(); f = new File(rs.getString(2)); out = new BufferedOutputStream(new FileOutputStream(f)); byte[] buf = new byte[1024]; int i = 0; while ((i = ins.read(buf)) != -1) { out.write(buf); } ins.close(); out.close(); } rs.close(); ps.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void update(int id , File newFile) { try { String sql = "update photo set myphoto=? where id="+id; Connection conn = this.getConn(); PreparedStatement ps = conn.prepareStatement(sql); InputStream in = new BufferedInputStream(new FileInputStream(newFile)); ps.setBinaryStream(1, in, (int) newFile.length()); int count=0; count=ps.executeUpdate(); System.out.println(count); ps.close(); in.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws IOException { }
用hibenate.cfg.xml
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- <property name="hbm2ddl.auto">update</property> --> <property name="dialect"> org.hibernate.dialect.MySQLDialect </property> <property name="connection.url"> jdbc:mysql://localhost:3306/mydb </property> <property name="connection.username">root</property> <property name="connection.password">791129</property> <property name="connection.driver_class"> com.mysql.jdbc.Driver </property> <property name="myeclipse.connection.profile">mysql</property> <property name="show_sql">true</property> <mapping resource="com/h/Photo.hbm.xml" /> </session-factory> </hibernate-configuration>
Photo.hbm.xml 文件
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- Mapping file autogenerated by MyEclipse Persistence Tools --> <hibernate-mapping> <class name="com.h.Photo" table="photo" > <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native" /> </id> <property name="pname" type="java.lang.String"> <column name="pname" length="30" not-null="true" /> </property> <property name="myphoto" type="java.sql.Blob"> <column name="myphoto" /> </property> </class> </hibernate-mapping>
程序文件SessionFactory .java
package com.h.util; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.cfg.Configuration; public class SessionFactory { private static String CONFIG_FILE_LOCATION = "/com/lyx/util/hibernate.cfg.xml"; private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); private static Configuration configuration = new Configuration(); private static org.hibernate.SessionFactory sessionFactory; private static String configFile = CONFIG_FILE_LOCATION; static { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err .println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } private SessionFactory() { } public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { if (sessionFactory == null) { rebuildSessionFactory(); } session = (sessionFactory != null) ? sessionFactory.openSession() : null; threadLocal.set(session); } return session; } public static void rebuildSessionFactory() { try { configuration.configure(configFile); sessionFactory = configuration.buildSessionFactory(); } catch (Exception e) { System.err .println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } public static org.hibernate.SessionFactory getSessionFactory() { return sessionFactory; } public static void setConfigFile(String configFile) { SessionFactory.configFile = configFile; sessionFactory = null; } public static Configuration getConfiguration() { return configuration; } }
pojo 文件
package com.h; import java.sql.Blob; /** * Photo entity. @author MyEclipse Persistence Tools */ @SuppressWarnings("serial") public class Photo implements java.io.Serializable { private Integer id; private String pname; private Blob myphoto; public Photo() { } public Photo(String pname) { this.pname = pname; } public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } public String getPname() { return this.pname; } public void setPname(String pname) { this.pname = pname; } public Blob getMyphoto() { return myphoto; } public void setMyphoto(Blob myphoto) { this.myphoto = myphoto; } }
session操作文件
package com.h; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.sql.Blob; import java.sql.SQLException; import java.util.List; import com.h.util.SessionFactory; import org.hibernate.Hibernate; import org.hibernate.Session; /** * @author 李亚希 版权所有 :天豪工作室 2009-9-21 */ public class PhotoDao { public PhotoDao() { } /** * @param fromName 将要存入数据库的图片文件名 * @param toName 表中的列---定义的新的图片名 */ public void save(String fromName, String toName ) { try { Session session = SessionFactory.getSession(); File ff = new File(fromName); FileInputStream fis = new FileInputStream(ff); Blob bbb = Hibernate.createBlob(fis); Photo pp = new Photo(); pp.setPname(toName); pp.setMyphoto(bbb); session.save(pp); System.out.println(pp.getId()); session.close(); } catch (FileNotFoundException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * @param id 获取行数据的id值 * @param outputFileName 输出的文件名 */ public void getById(int id) { try{ Session session = SessionFactory.getSession(); Photo p = (Photo) session.get(Photo.class, id); System.out.println(p.getId() + "\t" + p.getPname()); Blob b = p.getMyphoto(); InputStream in = b.getBinaryStream(); File f = null; OutputStream out = null; f = new File(p.getPname()); out = new BufferedOutputStream(new FileOutputStream(f)); byte[] buf = new byte[1024]; int i = 0; while ((i = in.read(buf)) != -1) { out.write(buf); } session.close(); }catch(IOException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } @SuppressWarnings("unchecked") public void getAll() throws IOException, SQLException { Session session = SessionFactory.getSession(); List ps = session.createQuery("from Photo").list(); System.out.println("ps.size=====" + ps.size()); if (ps.size() > 0) { for (int i = 0; i < ps.size(); i++) { InputStream in = null; OutputStream out = null; Blob b = null; File f = null; Photo p = (Photo) ps.get(i); System.out.println(p.getId() + "\t" + p.getPname()); b = p.getMyphoto(); in = b.getBinaryStream(); f = new File(p.getPname()); out = new BufferedOutputStream(new FileOutputStream(f)); byte[] buf = new byte[1024]; int j = 0; while ((j = in.read(buf)) != -1) { out.write(buf); } in.close(); out.close(); } } session.close(); } public static void main(String[] args) throws SQLException, IOException { PhotoDao pd=new PhotoDao(); //pd.save("b.jpg","bbbbbb.jpg"); pd.getAll(); } }
- src.rar (6.2 KB)
- 描述: 源文件不含库
- 下载次数: 73
相关推荐
总结,Java串口助手接收串口数据并存入MySQL数据库涉及了串口通信、数据解析、数据库操作等多个技术环节。通过合理设计和实现,这样的工具能有效地帮助我们收集和存储来自串口设备的数据,为数据分析和应用提供支持...
在Java编程领域,将Excel数据读取并存储到MySQL数据库是一项常见的任务,特别是在数据分析、报表生成或系统集成等场景中。下面将详细讲解这个过程涉及的主要知识点。 首先,我们需要了解如何使用Java处理Excel文件...
至此,我们已经完成了在Java Web中显示存入MySQL数据库的图片的基本流程。值得注意的是,虽然这种方法在小规模应用中可行,但随着数据量增大,可能会面临性能问题,因为频繁的BLOB操作会加重数据库负担。更推荐的...
在本场景中,我们将探讨如何将图片存入MySQL数据库,特别是针对用户头像的存储和管理。 首先,我们需要理解MySQL数据库对二进制数据的支持。在MySQL中,可以使用BLOB(Binary Large Object)类型的字段来存储图片...
1. 运行waterMain,该程序连接onenet云平台,获取4条河流的最新数据信息,处理数据后,连接MySQL数据库,只把最新的数据信息存入数据库中 2. 可部署到自己服务器中与毕设代码1结合使用 爱吃凉拌辣芒果 2022年6月...
在Java编程中,将CSV(逗号分隔值)文件的数据导入到MySQL数据库是一项常见的任务。这个过程涉及几个关键步骤,包括读取CSV文件、解析数据、建立与数据库的连接以及执行SQL插入语句。本篇文章将详细讲解如何使用java...
shp文件:地理信息系统,也被称作GIS,它主要的扩展类型是SHAPEFILE (.SHP),一个包含了矢量地理空间数据的流行文件格式,描述了几何形态,点,线和多边形...该方法通过java代码实现将shp文件的数据读取以及存入数据库
接着,我们需要将图片数据存入数据库。在大多数情况下,数据库不会直接存储二进制大对象(BLOB),而是存储二进制数据的引用或路径。以MySQL为例,我们可以创建一个包含图片ID、名称和二进制数据的表: ```sql ...
从给定的文件信息来看,内容涉及了如何在MySQL数据库中存储图片数据的技术细节,以及相关的JSP页面和Java代码实现。接下来将详细说明这些知识点。 首先,文件中提到了创建数据库表的SQL语句,用于存储图片数据。...
接下来,为了将数据持久化存储,你需要配置一个数据库。常见的选择有MySQL、PostgreSQL或者MongoDB。在Java程序中,你可以使用JDBC(Java Database Connectivity)来连接数据库。在数据库配置中,你需要提供数据库...
Java爬虫获取网页表格数据并保存到MySQL数据库,包含完整代码
在这个"利用POI解析excel并存入数据库demo"中,我们将关注如何使用 POI 库来读取 Excel 文件,并将数据有效地存入 MySQL 数据库。 首先,要开始使用 POI,你需要在你的项目中引入相应的依赖。如果你使用的是 Maven...
7. **数据转换**: 由于MySQL和SQLite的数据类型可能有所不同,程序需要处理数据类型的转换,确保从MySQL获取的数据可以正确存入SQLite。 8. **批量操作**: 为了提高效率,通常会使用批量插入或更新操作,而不是一条...
本教程将介绍如何使用Java解析XML文件,并将解析结果导入MySQL数据库。 首先,我们需要引入处理XML的Java库——JAXB(Java Architecture for XML Binding)和DOM(Document Object Model)API。JAXB用于对象与XML...
标题中的“接收NetFlow数据并导入Mysql数据库的Java工具”指的是一个利用Java编程语言开发的应用,该应用能够处理从网络设备上收集的NetFlow数据,并将这些数据存储到MySQL数据库中。NetFlow是一种网络流量监测协议...
本项目涉及的主题是“调用天气接口存入数据库—MySQL”,这是一套实现从网络获取天气预报数据并将其存储到MySQL数据库的流程。下面我们将详细探讨这个过程中的关键知识点。 首先,我们需要了解“天气接口”。这是一...
总结来说,将本体文件存入MySQL数据库,需要正确配置Jena、数据库和Java环境,解决版本兼容性问题,以及使用Jena API进行模型的创建、加载和操作。这个过程虽然可能遇到挑战,但通过理解这些基本步骤和调试技巧,...
在Java编程中,将本地图片上传到MySQL数据库以及从数据库下载图片是一项常见的任务,尤其在构建Web应用时。本文将详细解析如何实现这个过程,并基于给出的代码进行讲解。 首先,我们需要在数据库中创建一个用于存储...
这个过程通常涉及到Blob和Clob数据类型,它们是Java中的两种特殊对象,用于存储大对象(LOB)。Blob用于存储二进制数据,如图片、音频或视频文件,而Clob则用于存储字符数据,比如长文本。以下是如何使用Java处理...