sql >> Database >  >> RDS >> Mysql

Kan byte[] niet invoegen in MySQL met java

Het probleem is dat uw kolom met de naam "sleutel" een reservewoord is in SQL. Omring het met backticks en dingen zouden moeten werken. Beter nog, overweeg om de kolom te hernoemen naar iets dat geen SQL-reservewoord is. Ik heb dit bewezen met behulp van de onderstaande code:

MySQL-tabel:

create table keytable (name varchar(255) not null, `key` blob not null);

Java-code:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class MySQLBlobInsert {

    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        Connection conn = null;
        try {
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
            byte[] bkey = "This is some binary stuff".getBytes();
            String query = "INSERT INTO keytable (name, `key`) VALUES (?,?)";
            PreparedStatement pstmt = conn.prepareStatement(query);
            pstmt.setString(1, "test");
            pstmt.setBytes(2, bkey);
            pstmt.execute();
        } catch (SQLException e) {
            throw new RuntimeException(e);
        } finally {
            if (conn != null) {
                try { conn.close(); } catch (SQLException e) {}
            }
        }
        System.out.println("done :)");
    }
}


  1. Opgeslagen procedure uitvoeren in MySQL Workbench

  2. De Oracle-instantie afsluiten en starten

  3. MariaDB 10.3 beheren met ClusterControl

  4. SQL is gelijk aan (=) Operator voor beginners