Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể chèn byte [] vào MySQL bằng java

Vấn đề là cột của bạn được gọi là "khóa" là một từ dự trữ trong SQL. Bao quanh nó bằng các thanh chống lưng và mọi thứ sẽ hoạt động. Tốt hơn, hãy xem xét đổi tên cột thành một thứ không phải là từ dự trữ SQL. Tôi đã chứng minh điều này bằng cách sử dụng mã bên dưới:

Bảng MySQL:

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

Mã Java:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lỗi MySQL khi tạo khóa ngoại với di chuyển Laravel

  2. CHÈN VÀO Bảng từ nhiều bảng

  3. MySQL có cho phép tạo cơ sở dữ liệu với dấu chấm không?

  4. Cách sử dụng bind_result () thay vì get_result () trong php

  5. Chia chuỗi mysql