Como recuperar, insertar una imagen en Mysql, ????

Hola Amigos Necesito ayuda
Tengo Una base de datos en mysql "empresas" que cuenta de los siguientes campos

Table: empresas
Columns:
idempresa       int(10) UN PK
razonsocial     varchar(200)
ruc     varchar(15)
logo    mediumblob

he creado la clase conexión de la siguiente manera

public static Connection getConexion() {
        try{
           
            Class.forName("com.mysql.jdbc.Driver").newInstance();

            conexion = (Connection) DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/commend_1.0",
                    "root", "123456");
           
        } catch(Exception e) {
           
            System.out.println(e);
//            
            JOptionPane.showMessageDialog(null, "Error al conectarse acaaa","Conexion",
                    JOptionPane.ERROR_MESSAGE);
        }
        return conexion;
    }

en java "netbeans" tengo en mi jframe 4 texfield los 3 primeros solo tendran textos, el cuartot exfield contendra la direccion de la imagen y alado del texfiel4 un boton que llama a un jdialog que contiene un jFileChooser , el problema es que tengo que convertir primero la imagen y despues guardar en la bd....y no se como ...

de ante mano Gracias, esperando alguna opinion...

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

No se entiende tu post.

No se entiende tu post. Intenta poner tus imagenes en algun sitio como http://imgur.com/ e incluyelas como html con el tag

Tampoco dice en que necesitas ayuda, solo describes lo que tienes.

Si lo que quieres es insertar los datos utiliza JDBC para eso: aquí hay una introducción.

http://docs.oracle.com/javase/tutorial/jdbc/overview/index.html

Basicamente necesitas:
- Obtener un driver jdbc para tu base de datos,
- Obtener una conexión a la base de datos ( utilizando un URL de jdbc especifico para tu base de datos )
- E insertar los datos usando un prepared statement

Saludos

El JFileChooser te devuelve

El JFileChooser te devuelve el archivo seleccionado. Ve el ejemplo en la documentación:

http://docs.oracle.com/javase/7/docs/api/javax/swing/JFileChooser.html

    JFileChooser chooser = new JFileChooser();
    FileNameExtensionFilter filter = new FileNameExtensionFilter(
        "JPG & GIF Images", "jpg", "gif");
    chooser.setFileFilter(filter);
    int returnVal = chooser.showOpenDialog(parent);
    if(returnVal == JFileChooser.APPROVE_OPTION) {
       System.out.println("You chose to open this file: " + chooser.getSelectedFile().getName());
    }
 

Luego tienes que insertar lo utilizando el método setBlob y pasándole el inputstream de ese archivo ve este ejemplo:

http://www.codejava.net/java-se/jdbc/insert-file-data-into-mysql-databas...

String filePath = "D:/Photos/Tom.jpg";
InputStream inputStream = new FileInputStream(new File(filePath));
 
String sql = "INSERT INTO person (photo) values (?)";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setBlob(1, inputStream);
statement.executeUpdate();

Y ya.

Es decir

InputStream is;
...
File image = fileChooser.getSelectedFiile();
...
preparedStatement.setBlob( index, is = new FileInputStream( image ) );
...
} finally {
is.close();
preparedStatement.close();
connection.close();
   

pd. las búsquedas que hice en google fueron:

https://www.google.com/search?q=jfilechooser

https://www.google.com/search?q=jdbc+insert+file+as+mediumblob

Imagen de Jose Sosa

OK...

Ahora lo pongo en prueba.....

Imagen de J. Aaron Gonzalez V.

Recomendación

Hola José!

En efecto, los códigos que te brindan son un buen ejemplo para insertar imágenes en motores MySQL; sin embargo me atrevo a hacerte estas recomendaciones, pues se ve que tu apliación se desplegará en ambientes empresariales, y éstos tienden a ser muy diversos y cambiar constantemente.

1. En primer lugar te invito a cambiar de motor de base de datos. MySQL era la opción ideal para RDBMS opensource, sin embargo ya casi no recibe actualizaciones debido a la compra de Sun por parte de Oracle. Además su licencia de uso tambíen ha cambiado. Me gustaría que conocieras MariaDB, es un fork MySQL bastante bueno y es lidereado por el fundador de éste último.

2. Te recomiendo que uses un ORM para tus transacciones con el motor. Hibernate es una buena opción y te permitirá abstraer y evitar la capa de negocio evitando empotramientos SQL en tu código Java.

3. Esta es importante, el tipo de dato MEDIUMBLOB tiene ciertas restricciones con respecto al tamaño, te sugiero que programes una validación en el momento de seleccionar tu imagen para evitar excepciones en el momento de cargar la imagen.

Espero te sirvan mis observaciones. Saludos!!