簡體   English   中英

如何從 java 中的數組列表生成二維碼並存儲到數據庫?

[英]How do I generate QR Code from a array list in java and store to database?

我想從我的行數據庫中制作一個二維碼,我只有一個用於插入 function 的制作方法,並且有一個二維碼生成器。 問題是Zxing方法Bitmatrix對參數進行編碼是String。 如何為二維碼生成數組或獲取一兩個字段行數據?

private static ArrayList<PersonalInfo> pi = new ArrayList();
    private static String image_name = "";
    private static String filepath = "G:\\Netbeans Project\\Template_End_Project\\src\\endproject" + image_name + ".png";
    private static String charset = "UTF-8";
//Here some variable

public static void Save(PersonalInfo pi1) throws SQLException, WriterException, IOException {
        try {
            unique(pi1);
            PreparedStatement ps = ConnectionClass.getPreStatement("insert into Karyawan_info(id_pegawai, nik_ktp, nama_lengkap, jenis_kelamin,tanggal_lahir, "
                    + "tempat_lahir, alamat, nomor_handphone, email, jabatan, tanggal_bergabung, gaji, kontak_darurat, nomor_kontak_darurat, pas_foto)"
                    + "values ( ?,?,?,?,?,?,?,?,?,?,?,?,?,?,? )");
            ps.setInt(1, pi1.getId_pegawai());
            ps.setInt(2, pi1.getNik_ktp());
            ps.setString(3, pi1.getNama_lengkap());
            ps.setString(4, pi1.getJenis_kelamin());
            ps.setString(5, pi1.getTanggal_lahir());
            ps.setString(6, pi1.getTempat_lahir());
            ps.setString(7, pi1.getAlamat());
            ps.setInt(8, pi1.getNomor_handphone());
            ps.setString(9, pi1.getEmail());
            ps.setString(10, pi1.getJabatan());
            ps.setString(11, pi1.getTanggal_bergabung());
            ps.setDouble(12, pi1.getGaji());
            ps.setString(13, pi1.getKontak_darurat());
            ps.setInt(14, pi1.getNomor_kontak_darurat());
            ps.setBytes(15, pi1.getPas_foto());

            ps.execute();

        } catch (IllegalArgumentException e) {

            throw new IllegalArgumentException(e.getMessage() + "Record not saved");
        } ;
        Map< EncodeHintType, ErrorCorrectionLevel> hintMap = new HashMap< EncodeHintType, ErrorCorrectionLevel>();
        hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
        BitMatrix matrix = new MultiFormatWriter().encode(
                new ArrayList(pi, charset),
                BarcodeFormat.QR_CODE, 200, 200, hintMap);// My Problem
        MatrixToImageWriter.writeToFile(matrix, filepath.substring(filepath
                .lastIndexOf('.') + 1), new File(filepath));
        System.out.println("QR Code image created successfully!");
    ```

您可以使用分隔符將字段轉換為字符串,您可以使用此字符串制作二維碼。 你可以用同樣的方式解析字符串來創建你的類的實例。

創建一個轉換字段的方法。

    public String personalInfoToString(PersonalInfo pi1) {
    final String dm = ";";
    return pi1.getId_pegawai() + dm + pi1.getNik_ktp() + dm +  pi1.getNama_lengkap() ...;
}

創建一個方法來解析字符串中的字段。

    public String stringToPersonalInfo(String personalInfo) {
    final String dm = ";";

    PersonalInfo pi = new PersonalInfo();
    String[] data = personalInfo.split(dm);

    pi.setId_pegawai(data[0]);
    pi.setNik_ktp(data[1])
    return pi;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM