存取数据库中的图像信息.docx_第1页
存取数据库中的图像信息.docx_第2页
存取数据库中的图像信息.docx_第3页
存取数据库中的图像信息.docx_第4页
存取数据库中的图像信息.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/ COLLATE Chinese_PRC_CI_AS 是指定SQLServer的排序规则,Chinese_RPC指中国大陆地区,CI指不区分大小写,如果区分,则为CS,AS指区分重音,AI则不区分create table Pictures( ID int IDENTITY (1,1) NOT NULL, name varchar (50) COLLATE Chinese_PRC_CI_AS NULL, length int NULL, Image image NULL, CONSTRAINT PK_Pictures PRIMARY KEY CLUSTERED( ID ) ON PRIMARY) ON PRIMARY TEXTIMAGE_ON PRIMARYpackage databasevisit;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Dimension;import java.awt.Graphics;import java.awt.GridLayout;import java.awt.Image;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.ScrollPaneConstants;public class AccessDatabaseImageInformation /* * param args */public static void main(String args) / TODO Auto-generated method stubDemoWindow13 dw = new DemoWindow13(存取数据库中的图像信息);dw.setBounds(dw.getToolkit().getScreenSize().width / 3, dw.getToolkit().getScreenSize().height / 3,dw.getToolkit().getScreenSize().width / 3, dw.getToolkit().getScreenSize().height / 3);dw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);dw.setVisible(true);class DemoWindow13 extends JFrame implements ActionListener JPanel jp1 = new JPanel();JPanel jp2 = new JPanel();JPanel jp3 = new JPanel();JPanel jp4 = new JPanel();JLabel jl = new JLabel(图片, JLabel.CENTER);JButton jbFirst = new JButton(|);JButton jbPrevious = new JButton();JButton jbLast = new JButton(|);JButton jbAdd = new JButton(添加图片);JButton jbDel = new JButton(删除图片);ImagePanel ip = new ImagePanel();int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS;int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS;JScrollPane jsp = new JScrollPane(ip, v, h);ImageHandler ih = new ImageHandler();public DemoWindow13(String title) super(title);add(jl, BorderLayout.NORTH);add(jsp, BorderLayout.CENTER);jp1.add(jbFirst);jp1.add(jbPrevious);jp1.add(jbNext);jp1.add(jbLast);jp2.add(jbAdd);jp2.add(jbDel);jp3.setLayout(new GridLayout(2, 1);jp3.add(jp1);jp3.add(jp2);add(jp3, BorderLayout.SOUTH);jbFirst.addActionListener(this);jbPrevious.addActionListener(this);jbNext.addActionListener(this);jbLast.addActionListener(this);jbAdd.addActionListener(this);jbDel.addActionListener(this);public void actionPerformed(ActionEvent e) if (e.getSource() = jbFirst) update(ih.getFirstImage(); else if (e.getSource() = jbPrevious) update(ih.getPreviousImage(); else if (e.getSource() = jbNext) update(ih.getNextImage(); else if (e.getSource() = jbLast) update(ih.getLastImage(); else if (e.getSource() = jbAdd) JFileChooser jfc = new JFileChooser(System.getProperty(user.dir)+ images);if (jfc.showOpenDialog(this) = JFileChooser.APPROVE_OPTION) ih.storeImage(jfc.getSelectedFile().getPath();update(ih.getLastImage(); else if (e.getSource() = jbDel) ih.deleteImage();update(ih.getFirstImage();public void update(Image image) ip.setImage(image);/ 刷新滚动面板jsp.setViewportView(ip);jl.setText(ih.getImageName();class ImagePanel extends JPanel Image image = null;public void setImage(Image image) this.image = image;if (image != null) setPreferredSize(new Dimension(image.getWidth(this),image.getHeight(this);repaint();public void paintComponent(Graphics g) super.paintComponent(g);if (image != null) g.drawImage(image, 0, 0, this); else g.setColor(Color.yellow);g.fillRect(0, 0, getWidth(), getHeight();class ImageHandler Connection con = null;Statement stm = null;PreparedStatement pstm = null;ResultSet rs = null;int id = 0;String imageName = 图片;public ImageHandler() init();load();public String getImageName() return imageName;public void init() try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);con = DriverManager.getConnection(jdbc:sqlserver:/localhost:1433;DatabaseName=test, sa,jocean); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public void load() try / 创建支持前后滚动的只读结果集stm = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = stm.executeQuery(select * from Pictures); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();public Image restoreImage() Image image = null;try id = rs.getInt(id);imageName = rs.getString(name);int length = rs.getInt(length);/ 获取图片二进制的输入流InputStream is = rs.getBinaryStream(Image);byte b = new bytelength;is.read(b);ImageIcon icon = new ImageIcon(b);image = icon.getImage(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();return image;public Image getFirstImage() try rs.first(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();/ 返回当前记录的图片return restoreImage();public Image getPreviousImage() try rs.previous(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return restoreImage();public Image getNextImage() try rs.next(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return restoreImage();public Image getLastImage() try rs.last(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return restoreImage();public void storeImage(String imageFile) File file = new File(imageFile);long length = file.length();try FileInputStream fis = new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论