मैंने JTDS v.1.2.8 . का उपयोग करके अपने SQL सर्वर से कनेक्ट किया है

मैं जेडीबीसी प्लगइन के साथ नया हूं और मैं इसे समझने की कोशिश कर रहा हूं। मैंने संबंधित प्रश्न/उत्तर के लिए मंचों की भी जांच की लेकिन मुझे कोई नहीं मिला, इसलिए मैं यहां पूछ रहा हूं :)

मैं जो हासिल करना चाहता हूं वह यह है कि मैं SQL डेटाबेस से प्राप्त डेटा को बेहतर तरीके से प्रदर्शित करना चाहता हूं, जैसे सूची दृश्य या तालिका दृश्य।

यह वह कोड है जिसका मैं इस समय उपयोग कर रहा हूं, मैं वास्तव में नहीं जानता कि इसे कैसे काम करना है

Class Model
    public class Model
{
    public String nom;
    public String prenom;
    public String mail;
    public String tel;
    public String date;
    public String caissier;
    public String vendeur;
    public String estheticienne;;

    // Getters and Setters omitted


}

/////////////////////////////////////////////// ///////////////////////

 public class Magasin extends AppCompatActivity {
        ListView list;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_magasin);


    Button btn = (Button) findViewById(R.id.btnData);
    btn.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            GetData retrieveData = new GetData();
            retrieveData.execute("");

        }
    });
}

private class GetData extends AsyncTask<String,String,String> {
    String msg = "";

    static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
    static final String DB_URL = "jdbc:mysql://" +
            DbStrings.DATABASE_URL + "/" + DbStrings.DATABASE_NAME;
    @Override
    protected void onPreExecute(){
    }
    @Override
    protected String doInBackground(String... params){
        Connection conn = null;
        Statement stmt = null;
        List<Model> list = new ArrayList<Model>();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection(DB_URL, DbStrings.USERNAME, DbStrings.PASSWORD);

            stmt = conn.createStatement();
            String sql = "SELECT * FROM login";
            ResultSet rs = stmt.executeQuery(sql);
            ResultSetMetaData rsmd = rs.getMetaData();



            while (rs.next()){
                Model utilisateur = new Model();
                utilisateur.prenom = rs.getString("prenom");
                utilisateur.nom = rs.getString("nom");
                utilisateur.mail = rs.getString("email");
                utilisateur.tel = rs.getString("tel");
                utilisateur.date = rs.getString("date");
                utilisateur.caissier = rs.getString("caissiere");
                utilisateur.vendeur = rs.getString("vendeuse");
                utilisateur.estheticienne = rs.getString("estheticienne");
                list.add(utilisateur);

            }
            msg = "Données récupérées !";

            rs.close();
            stmt.close();
            conn.close();

        } catch (SQLException connError){
            msg = "An exception was thrown for JDBC.";
            connError.printStackTrace();
        } catch (ClassNotFoundException e) {
            msg = "A class not found exception was thrown.";
            e.printStackTrace();

        }
        return msg;

    }

}

}

इसके समाधान में मुझे इंगित करने के लिए कोई टिप्पणी या उत्तर की बहुत सराहना की जाती है।

आपके समय के लिए धन्यवाद।

0
Hugo 8 जून 2018, 12:30

2 जवाब

सबसे बढ़िया उत्तर

मुख्य थ्रेड पर सर्वर ऑपरेशन न करें, यहां मेरे प्रोजेक्ट से एक कोड है

/*JDBC Connection URL*/
private static final String url = "jdbc:mysql://192.168.10.0:8000/etm";
/*JDBC Connection USER NAME*/
private static final String user = "admin";
/*JDBC Connection PASSWORD*/
private static final String pass = "admin";
/*ArrayList to store bus stop names*/
private static ArrayList<String> busStops;




private static class RetrieveSQL extends AsyncTask<Void, Void, ArrayList> {

        @Override
        protected ArrayList doInBackground(Void... voids) {
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (Exception e) {
                System.err.println("Cannot create connection");
            }
            Connection connection;
            busStops.clear();
            try {
                connection = DriverManager.getConnection(url, user, pass);
                Statement st = connection.createStatement();
                ResultSet rs = st.executeQuery("select * from stops");
                while (rs.next()) {
                    busStops.add(rs.getString("c_stop_name"));
                }
            } catch (Exception e) {
                System.err.println("Error");
            }
            return busStops;
        }

        @Override
        protected void onPostExecute(ArrayList busList) {
            super.onPostExecute(busList);
            mView.displayBusStopFromMySqlServer(busList);
        }
    }

OnPostExecute() सरणी सूची लौटाएगा, इसे एडेप्टर को पास करेगा।

सूचीदृश्य की तुलना में पुनर्चक्रणदृश्य का उपयोग करें

0
Rakesh R 8 जून 2018, 13:00

आपको सामग्री पंक्तियों के साथ एक सूची दृश्य बनाना चाहिए और शीर्षलेख पंक्ति के साथ एक लेआउट के ऊपर। और उस लेआउट पर कॉलम डिवीजन बनाएं जिसका उपयोग आप ListView पर प्रत्येक पंक्ति का प्रतिनिधित्व करने के लिए करेंगे।

अन्य तरीका स्क्रॉल के अंदर एक टेबललाउट बनाना है!

0
kowsikbabu 8 जून 2018, 13:05