Maison >base de données >tutoriel mysql >Comment ajouter des images à MySQL

Comment ajouter des images à MySQL

coldplay.xixi
coldplay.xixioriginal
2020-12-16 11:05:354707parcourir

Comment ajouter des images à MySQL : créez d'abord une méthode pour lire les images à l'aide de FileInputStream ; puis connectez-vous à la base de données et écrivez des instructions SQL, puis utilisez PreparedStatement pour exécuter des instructions SQL.

Comment ajouter des images à MySQL

L'environnement d'exploitation de ce tutoriel : Système Windows 7, mysql version 8.0.22 Cette méthode convient à toutes les marques d'ordinateurs.

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo MySQL

Comment ajouter des images à MySQL :

1. L'effet

Comment ajouter des images à MySQL

n'est pas une chaîne enregistrée, vous pouvez voir le type de données à gauche.

2. Obtenir des données blob

Nous créons une méthode pour utiliser FileInputStream pour lire l'image et ByteArrayOutputStream pour écrire les données lues dans l'octet[] tableau, puis

public static byte[] getImgStr(String path) throws IOException {
        FileInputStream fis = new FileInputStream(path);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        int len = 0;
        byte[] b = new byte[1024];
        while ((len = fis.read(b))!= -1){
            out.write(b,0,len);
        }
        //接收out
        byte[] array = out.toByteArray();
        fis.close();
        out.close();
        return array;
    }

3. Connectez-vous à la base de données et écrivez l'instruction SQL

Créez un Blob en utilisant Blob, puis convertissez les données d'image que nous avons obtenues en blob. tapez, puis utilisez PreparedStatement pour exécuter des instructions SQL car il prend en charge les espaces réservés et dispose d'une méthode setBlob qui peut écrire directement la valeur de notre adresse blob dans la base de données. Et puis vous avez terminé.

    public static void main(String[] args) {
        /*
        加载驱动
         */
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            //获取连接
            String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC";
            String user= "root";
            String password ="123456";
            try {
                Connection connection = DriverManager.getConnection(url,user,password);
                /*
                插入图片
                 */
                byte[] arr = getImgStr("图片地址");
                Blob blob = connection.createBlob();
                blob.setBytes(1,arr);
                String sql = "insert into pictures (name,pic,date) values('张三',?,'2015-01-01')";
                PreparedStatement ps = connection.prepareStatement(sql);
                ps.setBlob(1,blob);
                ps.executeUpdate();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException | IOException e) {
            e.printStackTrace();
        }
    }

Recommandations d'apprentissage gratuites associées : programmation php(vidéo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn