繁体   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