Maison > Article > base de données > Comment ajouter des images à MySQL
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.
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
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!