How to store text and pictures in MySQL

How to store text and pictures in MySQL

Large Text Data Types in Oracle

Clob long text type (not supported in MySQL, text is used instead)
Blob binary type

MySQL database

Text long text type TINYTEXT: 256 bytes
  TEXT: 65,535 bytes => ~64kb
  MEDIUMTEXT: 16,777,215 bytes => ~16MB
  LONGTEXT: 4,294,967,295 bytes => ~4GB
Blob binary type

For example:

Create a table

CREATE TABLE test(
   id INT PRIMARY KEY AUTO_INCREMENT,
   content LONGTEXT, -- text field img LONGBLOB -- picture field);

When storing text, it is stored in character type, and when storing pictures, it is stored in binary type. The specific method of setting parameters is different from the method of obtaining data.

For example:

// When storing text, set the parameter to character stream FileReader reader
pstmt.setCharacterStream(1, reader);
// When getting parameters // Method 1:
Reader r = rs.getCharacterStream("content");
// Get long text data, method 2:
System.out.print(rs.getString("content"));
// When storing binary images // Set the parameter to the binary stream InputStream in 
pstmt.setBinaryStream(1, in);
// Get the binary stream InputStream in = rs.getAsciiStream("img");
/**
 * Save Photo* 
 */
@Test
public void test2(){
  String sql = "insert into test(img) values(?)";
  try{
    con = JDBCUtil.getConnection();
    pstmt = con.prepareStatement(sql);
    // Set parameters // Get text File file = new File("f:/a.jpg");
    InputStream in = new FileInputStream(file);
    // Set the parameter to binary stream pstmt.setBinaryStream(1, in);
    // Execute sql
    pstmt.executeUpdate();
    in.close();
  }catch (Exception e) {
    e.printStackTrace();
  }finally{
    try {
      JDBCUtil.close(con, pstmt);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}
/**
 * Get photos * 
 */
@Test
public void test3(){
  String sql = "select * from test where id=?;";
  try{
    con = JDBCUtil.getConnection();
    pstmt = con.prepareStatement(sql);
    // Set parameters pstmt.setInt(1, 2);
    // Execute query rs = pstmt.executeQuery();
    while(rs.next()){
      byte[] buff = new byte[1024];
      InputStream in = rs.getAsciiStream("img");
      int l=0;
      OutputStream out = new FileOutputStream(new File("f:/1.jpg"));
      while((l=in.read(buff))!=-1){
        out.write(buff, 0, l);
      }
      in.close();
      out.close();
    }
  }catch (Exception e) {
    e.printStackTrace();
  }finally{
    try {
      JDBCUtil.close(con, pstmt);
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

Summarize

The above is the full content of this article. I hope that the content of this article will have certain reference learning value for your study or work. Thank you for your support of 123WORDPRESS.COM. If you want to learn more about this, please check out the following links

You may also be interested in:
  • MySQL implements a solution similar to Oracle sequence
  • mysql code to implement sequence function
  • Can't connect to local MySQL through socket ''/tmp/mysql.sock'' solution
  • A complete list of commonly used MySQL functions (classified and summarized)
  • Use MySQL master-slave configuration to achieve read-write separation and reduce database pressure
  • mysql+spring+mybatis to realize code configuration of database read-write separation
  • How to completely delete the MySQL service (clean the registry)
  • Several ways to store images in MySQL database
  • Installation and use of mysql on Ubuntu (general version)
  • Combining insert and select to implement the method of "inserting the maximum value of a field in the database + 1"

<<:  Reasons and solutions for not being able to detect array changes in Vue2

>>:  How to create a virtual environment using virtualenv under Windows (two ways)

Recommend

MySql sharing of null function usage

Functions about null in MySql IFNULL ISNULL NULLI...

Implementation steps for Docker deployment of SpringBoot applications

Table of contents Preface Dockerfile What is a Do...

Detailed explanation of Vue's keyboard events

Table of contents Common key aliases Key without ...

Record a troubleshooting record of high CPU usage of Tomcat process

This article mainly records a tomcat process, and...

Summary of CSS counter and content

The content property was introduced as early as C...

Introduction to using Unicode characters in web pages (&#,\u, etc.)

The earliest computers could only use ASCII chara...

MySQL password modification example detailed explanation

MySQL password modification example detailed expl...

20 Signposts on the Road to Becoming an Excellent UI (User Interface) Designer

Introduction: Interface designer Joshua Porter pub...

The difference between JS pre-parsing and variable promotion in web interview

Table of contents What is pre-analysis? The diffe...

About the "occupational disease" of designers

I always feel that designers are the most sensiti...

The difference between html Frame, Iframe and Frameset

10.4.1 The difference between Frameset and Frame ...

How to install vncserver in Ubuntu 20.04

Ubuntu 20.04 has been officially released in Apri...

How to insert pictures into HTML pages and add map index examples

1. Image formats supported on the WEB: GIF: can s...

Design a data collector with vue

Table of contents Scenario Core Issues Status mon...