1 /*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5
6 package objectintodb;
7
8 import java.io.ByteArrayInputStream;
9 import java.io.IOException;
10 import java.io.ObjectInputStream;
11 import java.io.ObjectOutputStream;
12 import java.io.PipedInputStream;
13 import java.io.PipedOutputStream;
14 import java.sql.Connection;
15 import java.sql.DriverManager;
16 import java.sql.PreparedStatement;
17 import java.sql.ResultSet;
18 import java.sql.SQLException;
19 import java.util.logging.Level;
20 import java.util.logging.Logger;
21
22 /**
23 *
24 * @author root
25 */
26 public class Main {
27
28 /**
29 * @param args the command line arguments
30 */
31 public static void main(String[] args) throws SQLException, ClassNotFoundException, IOException {
32 // TODO code application logic here
33 Connection conn=getConn();
34 java.sql.PreparedStatement pstmt=conn.prepareStatement("insert into user values (?)");
35
36 saveObject(new User("ty", "男", 20), pstmt, 1);
37 pstmt.execute();
38 ResultSet rs=conn.createStatement().executeQuery("select user from user");
39 User user=null;
40 while(rs.next())
41 {
42 user= (User)(readObject(rs, "user"));
43 }
44 rs.close();
45
46 System.out.println(user.getUname());
47
48 }
49
50
51
52
53 //保存对象
54 static void saveObject(User user,PreparedStatement pstmt,int paramterIndex)
55 {
56 PipedInputStream is=new PipedInputStream();
57 try {
58 ObjectOutputStream oout = new ObjectOutputStream(new PipedOutputStream(is));
59 oout.writeObject(user);
60 oout.close();
61 pstmt.setBinaryStream(1, is, is.available());
62 } catch (IOException ex) {
63 Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
64 }
65 catch (SQLException sx)
66 {
67 sx.printStackTrace();
68 }
69 }
70
71
72
73
74 //读取对象
75 static Object readObject(ResultSet rs,String column) throws ClassNotFoundException, IOException, SQLException
76 {
77 byte[] buf=rs.getBytes(column);
78 if(buf!=null)
79 {
80 ObjectInputStream objIn=new ObjectInputStream(new ByteArrayInputStream(buf));
81 return objIn.readObject();
82 }
83 return null;
84 }
85
86
87 static Connection getConn()
88 {
89 Connection conn=null;
90 try {
91 String driver = "com.mysql.jdbc.Driver";
92 String url = "jdbc:mysql://localhost:3306/user";
93 String username = "ty";
94 String pwd = "ty";
95 Class.forName(driver);
96 conn = DriverManager.getConnection(url, username, pwd);
97 } catch (SQLException ex) {
98 Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
99 } catch (ClassNotFoundException ex) {
100 Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
101 }
102
103
104 return conn;
105
106 }
107
108 }
存取的对象需要实现序列化借口
分享到:
相关推荐
### 谈采用ASP数据库存取组件访问SQL Server数据库 #### 概述 随着互联网的发展,动态网页技术逐渐成为网站建设的重要组成部分。其中,ASP(Active Server Pages)以其易学性和微软的强大支持,在早期成为了开发...
全书内容主要包括:软件项目中的开发技术、关于Visual C++的话题、常见对象的表达、对象的赋值与转换、对象容器、使用文件存取对象、使用注册表存取对象、使用数据库存取对象、界面的布局、界面的绘制与交互、界面的...
Visual Basic作为一款强大的Windows软件开发工具,不仅提供了对Access数据库的全面支持,还能够通过数据库存取对象变量(DAO)和其他方式访问如FoxPro、dBASE等外来数据库。 文章首先介绍了VB的数据库体系结构,...
在标题“利用数据库存取图片,从数据库读取显示出来”中提到的方法,意味着我们将直接把图片的数据存储在数据库内,而不是仅仅保存图片的文件路径。这种方法在某些场景下可能是必要的,例如,如果需要确保图片与相关...
【CUMT WEB数据库存取例】是一个关于使用ASP(Active Server Pages)技术与ADO(ActiveX Data Objects)访问ACCESS数据库的应用示例。这个压缩包包含了一系列的ASP文件和一个ACCESS数据库文件,用于演示如何通过ASP...
标题与描述中的“漫谈Java数据库存取技术”聚焦于探讨Java领域中处理数据库存取的多种技术。本文将深入解析这些技术的核心概念、优势与局限性,以及它们如何适应不断变化的IT环境。 ### JDBC:Java数据库连接的基石...
本示例将探讨如何使用C#来处理图片的数据库存取,这对于创建图像管理应用、在线画廊或者任何需要存储和检索图像信息的系统至关重要。以下是关于这个主题的详细讲解。 一、数据库选择 在存取图片时,我们首先需要...
下面将详细介绍pgsql数据库中的大对象存取及其相关知识。 首先,大对象在PostgreSQL中被表示为OID(Object Identifier),它是一个唯一的32位整数。创建大对象时,数据库会为这个对象分配一个OID,之后所有对该对象...
"Delphi下利用ADO技术实现对MS SQL Server数据库存取.pdf" 在本文档中,我们将介绍如何使用Delphi语言和ADO技术来实现对MS SQL Server数据库的存取。 标题:Delphi下利用ADO技术实现对MS SQL Server数据库存取 ...
本篇将详细介绍如何利用C#来实现数据库中的图像存取。 首先,我们需要了解数据库中存储图像的基本原理。通常,我们不会直接将图像文件存储为二进制文件,而是将其转换为二进制数据,然后存储在数据库的BLOB(Binary...
- 数据库存取组件:ASP内置的组件,用于简化数据库的访问和操作,主要使用ADO(ActiveX Data Objects)技术。 - SQL Server:一种关系型数据库管理系统,广泛应用于各种大小的组织中,用于存储和管理数据。 - ADO...
"网数据库存取图片"这个主题涉及到如何在SQL Server数据库中存储和检索图片。这里我们将深入探讨相关知识点。 首先,SQL Server支持多种方式来存储图像和其他二进制大对象(BLOB)数据,如使用VARBINARY(MAX)或...
标题中的“Oracle数据库大对象数据存取的两种实现方法及时间性能比较”指的是在Oracle数据库中处理大对象(LOB)数据的两种不同方法,并对比它们的性能。Oracle数据库中的大对象数据通常指的是非结构化的数据,如...
全书内容主要包括:软件项目中的开发技术、关于Visual C++的话题、常见对象的表达、对象的赋值与转换、对象容器、使用文件存取对象、使用注册表存取对象、使用数据库存取对象、界面的布局、界面的绘制与交互、界面的...
关于Visual C++的话题、常见对象的表达、对象的赋值与转换、对象容器、使用文件存取对象、使用注册表存取对象、使用数据库存取对象、界面的布局、界面的绘制与交互、界面的美化、进程间对象的传输与调用、线程间对象...
关于Visual C++的话题、常见对象的表达、对象的赋值与转换、对象容器、使用文件存取对象、使用注册表存取对象、使用数据库存取对象、界面的布局、界面的绘制与交互、界面的美化、进程间对象的传输与调用、线程间对象...
在IT行业中,串口通讯和数据库操作是两...综上所述,"vc 串口通讯 数据库存取"的示例程序涉及到串口通信技术的实现,包括设置串口参数、数据传输,以及数据库的连接、查询和操作,是实现设备监控和数据管理的有效工具。
"利用Java程序实现Oracle数据库中大对象的存取" 本文主要介绍了利用Java程序实现Oracle数据库中大对象的存取。Oracle数据库系统是应用最广泛的数据平台,使用Java和Oracle相结合开发网络应用程序,可以使应用程序...
以下将详细解释如何在PB9中进行数据库存取图片的操作。 首先,我们需要创建一个能够存储图片的数据库表。这个表通常会包含一个或多个字段,其中一个是BLOB类型的字段,例如“ImageData”。在SQL数据库(如MySQL、...
### JSPSmartUpload 实现数据库中的图片存取 #### 一、引言 在Web开发中,经常需要处理用户上传的文件,特别是图片文件。传统的做法是将这些文件存储在服务器的文件系统中,但这种方法可能会导致文件管理复杂度...