Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

जावा नौसिखिया को डेटाबेस कनेक्शन में मदद चाहिए

मैं कहूंगा कि आपका कोड कई सबसे खराब प्रथाओं का एक उदाहरण है। मुझे तरीके गिनने दो:

  1. आपका कनेक्शन वर्ग एक खराब एब्स्ट्रैक्शन है जो java.sql.Connection के अलावा कुछ भी नहीं देता है।
  2. यदि आप अपनी कक्षा का उपयोग करते हैं, तो आप कभी भी कनेक्शन पूलिंग का लाभ नहीं उठा पाएंगे।
  3. आप अपने ड्राइवर वर्ग, अपने कनेक्शन URL आदि को हार्ड वायर करते हैं। आप इसे संपादित और पुन:संकलित किए बिना नहीं बदल सकते। एक बेहतर उपाय यह होगा कि ऐसी चीजों को बाहरी बनाया जाए।
  4. कैच ब्लॉक में त्रुटि संदेश प्रिंट करना संपूर्ण स्टैक ट्रेस की आपूर्ति की तुलना में बहुत कम जानकारी है।
  5. आपके कोड से मेरी आंखों में दर्द होता है। यह सन जावा कोडिंग मानकों का पालन नहीं करता है।
  6. आपका retrieveData तरीका बिल्कुल बेकार है। आप उन सभी मुद्रित बयानों का क्या करेंगे? क्या उन्हें डेटा संरचना या ऑब्जेक्ट में लोड करना बेहतर नहीं होगा ताकि आपका शेष कोड उस जानकारी का उपयोग कर सके?
  7. यह rowsAffected है - "प्रभाव" क्रिया है, "प्रभाव" संज्ञा है। एक और चर जो कुछ भी अच्छा नहीं कर रहा है।

आप गलत रास्ते पर हैं। इस पर पुनर्विचार करें।

मुझे लगता है कि आपको यह कोड अधिक उपयोगी लगेगा।

package persistence;

import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DatabaseUtils
{
    public static Connection createConnection(String driver, String url, String username, String password) throws ClassNotFoundException, SQLException
    {
        Class.forName(driver);

        if ((username == null) || (password == null) || (username.trim().length() == 0) || (password.trim().length() == 0))
        {
            return DriverManager.getConnection(url);
        }
        else
        {
            return DriverManager.getConnection(url, username, password);
        }
    }

    public static void close(Connection connection)
    {
        try
        {
            if (connection != null)
            {
                connection.close();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }


    public static void close(Statement st)
    {
        try
        {
            if (st != null)
            {
                st.close();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static void close(ResultSet rs)
    {
        try
        {
            if (rs != null)
            {
                rs.close();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static void rollback(Connection connection)
    {
        try
        {
            if (connection != null)
            {
                connection.rollback();
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }

    public static List<Map<String, Object>> map(ResultSet rs) throws SQLException
    {
        List<Map<String, Object>> results = new ArrayList<Map<String, Object>>();

        try
        {
            if (rs != null)
            {
                ResultSetMetaData meta = rs.getMetaData();
                int numColumns = meta.getColumnCount();
                while (rs.next())
                {
                    Map<String, Object> row = new HashMap<String, Object>();
                    for (int i = 1; i <= numColumns; ++i)
                    {
                        String name = meta.getColumnName(i);
                        Object value = rs.getObject(i);
                        row.put(name, value);
                    }
                    results.add(row);
                }
            }
        }
        finally
        {
            close(rs);
        }

        return results;
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SPARQL क्वेरी एक नोड के सभी जनक प्राप्त करने के लिए

  2. दर्ज प्रपत्र डेटा mysql डीबी में सहेज नहीं रहा है?

  3. mysql डेटाबेस का आकार कैसे प्राप्त करें?

  4. स्प्रिंग MySQL और RowCallbackHandler का उपयोग करके बड़े डेटासेट का प्रबंधन कैसे करें

  5. PHP/MySQL - बहुवचन शामिल करें लेकिन एकवचन को बाहर करें