简体   繁体   English

如何从 java 中的数组列表生成二维码并存储到数据库?

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

I want to make a QR Code from my row database, I just have a make method save for insert function and there is a qr code generator.我想从我的行数据库中制作一个二维码,我只有一个用于插入 function 的制作方法,并且有一个二维码生成器。 The problem is Zxing method Bitmatrix to encode parameter was String.问题是Zxing方法Bitmatrix对参数进行编码是String。 How to generate an array or get one or two field row data for QR Code?如何为二维码生成数组或获取一两个字段行数据?

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!");
    ```

You can convert your fields to string with a delimiter you can use this string to make QR code.您可以使用分隔符将字段转换为字符串,您可以使用此字符串制作二维码。 You can parse the string to create your class's instance in the same way.你可以用同样的方式解析字符串来创建你的类的实例。

Create a method to convert fields.创建一个转换字段的方法。

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

Create a method to parse fields from the string.创建一个方法来解析字符串中的字段。

    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