Blob: Image 2 : Blob Binary Data JDBC « Database SQL JDBC « Java






Blob: Image 2

/* MySQL and Java Developer's Guide Mark Matthews, Jim Cole, Joseph D. Gradecki Publisher Wiley, Published February 2003, ISBN 0471269239 */import java.awt.Container; import java.awt.FlowLayout; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Timestamp; import java.util.Vector; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; publicclass IDlookBlob extends JFrame { private JButton getAccountButton, updateAccountButton, insertAccountButton, nextButton, previousButton, lastButton, firstButton; private JList accountNumberList; private JTextField accountIDText, nailFileText, thumbIDText; private JTextArea errorText; private Connection connection; private Statement statement; private ResultSet rs; private ImageIcon icon = null; private ImageIcon iconThumbnail = null; JLabel photographLabel; public IDlookBlob() { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (Exception e) { System.err.println("Unable to find and load driver"); System.exit(1); } } privatevoid loadAccounts() { Vector v = new Vector(); try { rs = statement.executeQuery("SELECT * FROM thumbnail"); while (rs.next()) { v.addElement(rs.getString("acc_id")); } } catch (SQLException e) { displaySQLErrors(e); } accountNumberList.setListData(v); } privatevoid buildGUI() { Container c = getContentPane(); c.setLayout(new FlowLayout()); accountNumberList = new JList(); loadAccounts(); accountNumberList.setVisibleRowCount(2); JScrollPane accountNumberListScrollPane = new JScrollPane( accountNumberList); //Do Get Account Button  getAccountButton = new JButton("Get Account"); getAccountButton.addActionListener(new ActionListener() { publicvoid actionPerformed(ActionEvent e) { try { rs.beforeFirst(); while (rs.next()) { if (rs.getString("acc_id").equals( accountNumberList.getSelectedValue())) break; } if (!rs.isAfterLast()) { accountIDText.setText(rs.getString("acc_id")); thumbIDText.setText(rs.getString("thumb_id")); Blob b = rs.getBlob("pic"); icon = new ImageIcon(b.getBytes(1L, (int) b.length())); createThumbnail(); photographLabel.setIcon(iconThumbnail); } } catch (SQLException selectException) { displaySQLErrors(selectException); } } }); //Do Update Account Button  updateAccountButton = new JButton("Update Account"); updateAccountButton.addActionListener(new ActionListener() { publicvoid actionPerformed(ActionEvent e) { try { byte[] bytes = newbyte[50000]; FileInputStream fs = new FileInputStream(nailFileText .getText()); BufferedInputStream bis = new BufferedInputStream(fs); bis.read(bytes); rs.updateBytes("thumbnail.pic", bytes); rs.updateRow(); bis.close(); accountNumberList.removeAll(); loadAccounts(); } catch (SQLException insertException) { displaySQLErrors(insertException); } catch (Exception generalE) { generalE.printStackTrace(); } } }); //Do insert Account Button  insertAccountButton = new JButton("Insert Account"); insertAccountButton.addActionListener(new ActionListener() { publicvoid actionPerformed(ActionEvent e) { try { byte[] bytes = newbyte[50000]; FileInputStream fs = new FileInputStream(nailFileText .getText()); BufferedInputStream bis = new BufferedInputStream(fs); bis.read(bytes); rs.moveToInsertRow(); rs.updateInt("thumb_id", Integer.parseInt(thumbIDText .getText())); rs.updateInt("acc_id", Integer.parseInt(accountIDText .getText())); rs.updateBytes("pic", bytes); rs.updateObject("sysobject", null); rs.updateTimestamp("ts", new Timestamp(0)); rs.updateTimestamp("act_ts", new Timestamp( new java.util.Date().getTime())); rs.insertRow(); bis.close(); accountNumberList.removeAll(); loadAccounts(); } catch (SQLException insertException) { displaySQLErrors(insertException); } catch (Exception generalE) { generalE.printStackTrace(); } } }); photographLabel = new JLabel(); photographLabel.setHorizontalAlignment(JLabel.CENTER); photographLabel.setVerticalAlignment(JLabel.CENTER); photographLabel.setVerticalTextPosition(JLabel.CENTER); photographLabel.setHorizontalTextPosition(JLabel.CENTER); JPanel first = new JPanel(new GridLayout(4, 1)); first.add(accountNumberListScrollPane); first.add(getAccountButton); first.add(updateAccountButton); first.add(insertAccountButton); accountIDText = new JTextField(15); thumbIDText = new JTextField(15); errorText = new JTextArea(5, 15); errorText.setEditable(false); JPanel second = new JPanel(); second.setLayout(new GridLayout(2, 1)); second.add(thumbIDText); second.add(accountIDText); JPanel third = new JPanel(); third.add(new JScrollPane(errorText)); nailFileText = new JTextField(25); c.add(first); c.add(second); c.add(third); c.add(nailFileText); c.add(photographLabel); setSize(500, 500); show(); } publicvoid connectToDB() { try { connection = DriverManager .getConnection("jdbc:mysql://192.168.1.25/identification?user=spider&password=spider");  statement = connection.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); } catch (SQLException connectException) { System.out.println(connectException.getMessage()); System.out.println(connectException.getSQLState()); System.out.println(connectException.getErrorCode()); System.exit(1); } } privatevoid displaySQLErrors(SQLException e) { errorText.append("SQLException: " + e.getMessage() + "\n"); errorText.append("SQLState: " + e.getSQLState() + "\n"); errorText.append("VendorError: " + e.getErrorCode() + "\n"); } privatevoid init() { connectToDB(); } privatevoid createThumbnail() { int maxDim = 350; try { Image inImage = icon.getImage(); double scale = (double) maxDim / (double) inImage.getHeight(null); if (inImage.getWidth(null) > inImage.getHeight(null)) { scale = (double) maxDim / (double) inImage.getWidth(null); } int scaledW = (int) (scale * inImage.getWidth(null)); int scaledH = (int) (scale * inImage.getHeight(null)); BufferedImage outImage = new BufferedImage(scaledW, scaledH, BufferedImage.TYPE_INT_RGB); AffineTransform tx = new AffineTransform(); if (scale < 1.0d) { tx.scale(scale, scale); } Graphics2D g2d = outImage.createGraphics(); g2d.drawImage(inImage, tx, null); g2d.dispose(); iconThumbnail = new ImageIcon(outImage); } catch (Exception e) { e.printStackTrace(); } } publicstaticvoid main(String[] args) { IDlookBlob id = new IDlookBlob(); id.addWindowListener(new WindowAdapter() { publicvoid windowClosing(WindowEvent e) { System.exit(0); } }); id.init(); id.buildGUI(); } } 








Related examples in the same category

1.Read BLOBs data from database
2.Store BLOBs data into database
3.Insert picture to MySQL
4.Demo Display Binary Data From Database
5.Materialize binary data onto client
6.Blob: JDBC deals with Binary Data
7.Inserting Image in Database Table
8.Blob and JDBC: Image
9.Blob: image 3
10.Insert an Image
11.Retrieve an Image
12.Store and retrieve an object from a table
13.Read CLOBs data from database
14.Getting BLOB Data from a Database Table: how to retrieves bytes from a BLOB.
15.Store CLOBs data into database?
16.Getting and Inserting Binary Data into an Database Table
close