জাভাটিকে একটি মাইএসকিউএল ডাটাবেসে সংযুক্ত করুন


322

আপনি জাভাতে কোনও মাইএসকিউএল ডাটাবেসে কীভাবে সংযুক্ত হন?

আমি চেষ্টা করার পরে, আমি পেতে

java.sql.SQLException: No suitable driver found for jdbc:mysql://database/table
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)

অথবা

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

অথবা

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver

এখানে জাভা থেকে মাইএসকিউএল ব্যবহার করে প্রদর্শিত একটি সংক্ষিপ্ত 3 মিনিটের ভিডিও টিউটোরিয়াল রয়েছে। এটি এখানে দেখুন: দ্রুত টিউটোরিয়াল: জাভা ব্যবহার করে মাইএসকিউএল ডাটাবেসে সংযুক্ত হচ্ছে
আতঙ্কিত

উত্তর:


208

DriverManagerজিনিসগুলি করার মোটামুটি পুরানো উপায়। DataSourceআপনার অ্যাপ্লিকেশন সার্ভারের ধারকটি ইতিমধ্যে আপনার জন্য কনফিগার করা হয়েছে এমনটি সন্ধান করে আরও ভাল উপায় get

Context context = new InitialContext();
DataSource dataSource = (DataSource) context.lookup("java:comp/env/jdbc/myDB");

বা সরাসরি আপনার ডাটাবেস ড্রাইভার থেকে ইনস্ট্যান্ট এবং কনফিগার:

MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("scott");
dataSource.setPassword("tiger");
dataSource.setServerName("myDBHost.example.org");

এবং তারপরে উপরের মতো একই থেকে সংযোগ গ্রহণ করুন:

Connection conn = dataSource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT ID FROM USERS");
...
rs.close();
stmt.close();
conn.close();

1
অন্যান্য উদাহরণগুলি কীভাবে ব্যবহার হয় com.mysql.jdbc.Driver? এই পদ্ধতি কি ভাল?
জেসন এস

7
আমি মনে করি এটি পুরানো শৈলীর ড্রাইভার ক্লাস যা পুরানো শৈলীর ড্রাইভার ব্যবস্থার সাথে কাজ করে। MysqlDataSourceবাস্তবায়ন javax.sql.DataSourceযা নতুন পদ্ধতি mechanism
শন

1
হাই @ সিয়নওয়েইন আমি অবাক হয়েছি, কেন আমরা বন্ধ করি rsএবং stmt? শুধু কেন নয় conn?
কামুরান সানেসেক

3
হতে পারে আপনার ডাটাসোর্স.সেটডেট ডাটাবেসনেম ("ডাটাবেস") যুক্ত করা উচিত।
মায়োচ

1
এটি আরও কোড হলেও স্পষ্টতই () জিনিসগুলি বন্ধ করা ভাল অনুশীলন। হ্যাঁ, সংযোগ বন্ধ হয়ে গেলে যে কোনও ভাল প্রয়োগের জন্য সংস্থানগুলি বন্ধ করতে হবে। অন্যান্য প্রসঙ্গে বিবেচনা করুন যেখানে আপনি যদিও কোনও বিবৃতি বা সংযোগ পুনরায় ব্যবহার করতে চান। জাভা 7-এর চেষ্টা-সহ-সংস্থানগুলিতে, আপনি যে কোনও উপায়ে নিখরচায় এই আচরণটি পান:
শন ওওন

476

এখানে মাইএসকিউএল এবং জেডিবিসি কীভাবে ইনস্টল করতে হয় এবং কীভাবে এটি ব্যবহার করতে হয় তার এক ধাপে ধাপে এখানে ব্যাখ্যা:

  1. মাইএসকিউএল সার্ভারটি ডাউনলোড এবং ইনস্টল করুন । এটি কেবল স্বাভাবিকভাবেই করুন। আপনি যখনই এটি পরিবর্তন করেছেন বন্দর নম্বরটি মনে রাখবেন। এটি ডিফল্টরূপে3306

  2. জেডিবিসি ড্রাইভারটি ডাউনলোড করে ক্লাসপথে রাখুন , জিপ ফাইলটি বের করুন এবং এতে থাকা জেআর ফাইলটি ক্লাসপথে রাখুন। বিক্রেতা-নির্দিষ্ট জেডিবিসি ড্রাইভার হ'ল জেডিবিসি এপিআইয়ের একটি কংক্রিট বাস্তবায়ন( এখানে টিউটোরিয়াল )।

    আপনি অন্ধকার বা Netbeans মতো আইডিই ব্যবহার করেন, তাহলে তাহলে আপনি এটি ক্লাসপাথ হিসেবে JAR- র ফাইল যোগ করে যুক্ত করতে পারেন লাইব্রেরী থেকে পাথ বিল্ড প্রকল্পের বৈশিষ্ট্য হবে।

    আপনি যদি কমান্ড কনসোলে এটি "প্লেইন ভ্যানিলা" করছেন, তবে আপনার জাভা অ্যাপ্লিকেশনটি সম্পাদন করার সময় আপনাকে যুক্তি -cpবা -classpathআর্গুমেন্টে জেআর ফাইলের পথ নির্দিষ্ট করতে হবে ।

    java -cp।; / path / to / mysql-कनेেক্টার.জার com.example. আপনার ক্লাস

    .ঠিক আছে যোগ হয় বর্তমান পাশাপাশি যাতে এটি সনাক্ত করতে পারেন ক্লাসপাথ করার ডিরেক্টরি com.example.YourClassএবং ;ক্লাসপাথ বিভাজক হিসাবে এটি উইন্ডোজ আছে। ইউনিক্স এবং ক্লোনগুলিতে :ব্যবহার করা উচিত।

  3. মাইএসকিউএলে একটি ডাটাবেস তৈরি করুন । একটি ডাটাবেস তৈরি করা যাক javabase। আপনি অবশ্যই বিশ্ব আধিপত্য চান, সুতরাং ইউটিএফ -8 ব্যবহার করা যাক।

    CREATE DATABASE javabase DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
  4. জাভা জন্য একটি ব্যবহারকারী তৈরি করুন এবং এটি অ্যাক্সেস মঞ্জুর । কেবল কারণ ব্যবহারrootকরা একটি খারাপ অভ্যাস।

    CREATE USER 'java'@'localhost' IDENTIFIED BY 'password';
    GRANT ALL ON javabase.* TO 'java'@'localhost' IDENTIFIED BY 'password';

    হ্যাঁ, javaএটি ব্যবহারকারীর নাম এবং passwordএখানে পাসওয়ার্ড।

  5. জেডিবিসি ইউআরএল নির্ধারণ করুন । জাভা ব্যবহার করে মাইএসকিউএল ডাটাবেস সংযোগ করতে আপনার নিম্নলিখিত সিনট্যাক্সে একটি জেডিবিসি ইউআরএল প্রয়োজন:

    JDBC: MySQL: // হোস্টনাম: পোর্ট / databasename
    • hostname: মাইএসকিউএল সার্ভার যে হোস্টনামটি ইনস্টল করা আছে। আপনি যদি জাভা কোডটি চালান যেখানে এটি একই মেশিনে ইনস্টল করা থাকে তবে আপনি কেবল ব্যবহার করতে পারেন localhost। এটি আইপি ঠিকানার মতোও হতে পারে 127.0.0.1। যদি আপনি সংযোগ সমস্যা এবং এর সমাধানের 127.0.0.1পরিবর্তে ব্যবহার করে localhostথাকেন তবে আপনার নেটওয়ার্ক / ডিএনএস / হোস্ট কনফিগারেশনে আপনার সমস্যা।

    • port: টিসিপি / আইপি পোর্ট যেখানে মাইএসকিউএল সার্ভার শোনা যায়। এটি ডিফল্টরূপে 3306

    • databasename: আপনি যে ডাটাবেসের সাথে সংযোগ রাখতে চান তার নাম। এটাই javabase

    সুতরাং চূড়ান্ত ইউআরএল দেখতে হবে:

    JDBC: MySQL: // স্থানীয় হোস্ট: 3306 / javabase
  6. জাভা ব্যবহার করে মাইএসকিউএল এর সংযোগটি পরীক্ষা করুনmain()সংযোগটি পরীক্ষা করার জন্যএকটিপদ্ধতিসহ একটি সাধারণ জাভা ক্লাস তৈরি করুন।

    String url = "jdbc:mysql://localhost:3306/javabase";
    String username = "java";
    String password = "password";
    
    System.out.println("Connecting database...");
    
    try (Connection connection = DriverManager.getConnection(url, username, password)) {
        System.out.println("Database connected!");
    } catch (SQLException e) {
        throw new IllegalStateException("Cannot connect the database!", e);
    }

    যদি আপনি একটি পান SQLException: No suitable driver, তবে এর অর্থ হ'ল জেডিবিসি ড্রাইভারটি মোটেই অটোলাইড হয়নি বা জেডিবিসি ইউআরএলটি ভুল (যেমন এটি লোড হওয়া কোনও ড্রাইভারের দ্বারা স্বীকৃত ছিল না)। সাধারণত আপনি যখন রানটাইম ক্লাসপথে ফেলে রাখেন তখন একটি জেডিবিসি 4.0.০ ড্রাইভারটি অটোলেড করা উচিত। একটি এবং অন্যকে বাদ দেওয়ার জন্য, আপনি সর্বদা এটি নীচে হিসাবে ম্যানুয়ালি লোড করতে পারেন:

    System.out.println("Loading driver...");
    
    try {
        Class.forName("com.mysql.jdbc.Driver");
        System.out.println("Driver loaded!");
    } catch (ClassNotFoundException e) {
        throw new IllegalStateException("Cannot find the driver in the classpath!", e);
    }

    মনে রাখবেন যে, newInstance()কল না এখানে প্রয়োজন। এটি কেবল পুরানো এবং বগী ঠিক করার জন্য org.gjt.mm.mysql.Driverএখানে ব্যাখ্যা । যদি এই লাইনটি ছুড়ে ফেলে ClassNotFoundException, তবে জেডিবিসি ড্রাইভার ক্লাস সমন্বিত জেআর ফাইলটি কেবল ক্লাসপথে স্থাপন করা হয়নি।

    নোট করুন যে সংযোগ দেওয়ার আগে আপনাকে প্রতিবার ড্রাইভার লোড করার দরকার নেই । অ্যাপ্লিকেশন শুরুর সময় কেবল একবারই যথেষ্ট।

    আপনি যদি কোনও SQLException: Connection refusedবা Connection timed outএকটি মাইএসকিউএল নির্দিষ্ট পান CommunicationsException: Communications link failureতবে তার অর্থ ডিবি একেবারেই পৌঁছনীয় নয়। এটির নিম্নলিখিত বা একাধিক কারণ থাকতে পারে:

    1. জেডিবিসি ইউআরএলতে আইপি ঠিকানা বা হোস্টনামটি ভুল।
    2. জেডিবিসি ইউআরএল-এ হোস্ট-নেম স্থানীয় ডিএনএস সার্ভার দ্বারা স্বীকৃত নয়।
    3. জেডিবিসি ইউআরএলে পোর্ট নম্বরটি অনুপস্থিত বা ভুল।
    4. ডিবি সার্ভার ডাউন আছে।
    5. ডিবি সার্ভার টিসিপি / আইপি সংযোগ গ্রহণ করে না।
    6. ডিবি সার্ভারের সংযোগ শেষ।
    7. জাভা এবং ডিবি এর মধ্যে থাকা কিছু হ'ল সংযোগগুলি ব্লক করা, যেমন ফায়ারওয়াল বা প্রক্সি।

    এক বা অন্যটিকে সমাধান করতে নীচের পরামর্শগুলি অনুসরণ করুন:

    1. তাদের যাচাই করুন এবং পরীক্ষা করুন ping
    2. ডিএনএস রিফ্রেশ করুন বা পরিবর্তে জেডিবিসি ইউআরএল আইপি ঠিকানা ব্যবহার করুন।
    3. my.cnfমাইএসকিউএল ডিবির ভিত্তিতে এটি যাচাই করুন ।
    4. ডিবি শুরু করুন।
    5. মাইএসকিএলডিটি শুরু না করা থাকলে যাচাই করুন --skip-networking option
    6. ডিবি পুনরায় আরম্ভ করুন এবং আপনার কোডটি সেই অনুযায়ী সংযোগ বন্ধ করে দিন it finally
    7. ফোর্টওয়াল অক্ষম করুন এবং / অথবা পোর্টটিকে অনুমতি / ফরোয়ার্ড দেওয়ার জন্য ফায়ারওয়াল / প্রক্সি কনফিগার করুন।

    মনে রাখবেন যে এটি বন্ধ Connectionকরা অত্যন্ত গুরুত্বপূর্ণ। আপনি যদি সংযোগগুলি বন্ধ না করেন এবং অল্প সময়ের মধ্যে সেগুলি থেকে প্রচুর পরিমাণে পান, তবে ডাটাবেসগুলির সংযোগ শেষ হতে পারে এবং আপনার অ্যাপ্লিকেশনটি ভেঙে যেতে পারে। সর্বদা Connectionএকটি try-with-resourcesবিবৃতিতে অর্জন । অথবা আপনি এখনও জাভা 7 এ না থাকলে স্পষ্ট করে এটি finallyএকটি try-finallyব্লকের মধ্যে বন্ধ করুন। বন্ধ finallyহওয়া কেবল ব্যতিক্রমের ক্ষেত্রে এটি বন্ধ হয়ে যাওয়ার বিষয়টি নিশ্চিত করার জন্য। এটিও প্রযোজ্য Statement, PreparedStatementএবং ResultSet

এটাই ছিল সংযোগের উদ্বেগের বিষয়। আপনি এখানে একটি আরও উন্নত টিউটোরিয়াল খুঁজে পেতে পারেন যে কোনও বুনিয়াদি ডিএও শ্রেণীর সহায়তায় একটি ডাটাবেসে পূর্ণ যোগ্য জাভা মডেল অবজেক্টগুলি কীভাবে লোড এবং সঞ্চয় করতে হয়।


ডিবি সংযোগের জন্য সিঙ্গলটন প্যাটার্ন ব্যবহার করা একটি খারাপ দৃষ্টিভঙ্গি। অন্যান্য প্রশ্নের মধ্যে দেখুন: http://stackoverflow.com/q/9428573/ । এটি একটি # 1 স্টার্টারের ভুল।


39

ডাটাবেস ধ্রুবকগুলি আরম্ভ করুন

ধ্রুবক বৈশিষ্ট্য ডাটাবেস ব্যবহারকারীর নাম, পাসওয়ার্ড, URL এবং ড্রাইভার, ভোটদানের সীমা ইত্যাদি তৈরি করুন etc.

// init database constants
// com.mysql.jdbc.Driver
private static final String DATABASE_DRIVER = "com.mysql.cj.jdbc.Driver";
private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/database_name";
private static final String USERNAME = "root";
private static final String PASSWORD = "";
private static final String MAX_POOL = "250"; // set your own limit

সংযোগ এবং বৈশিষ্ট্যগুলি আরম্ভ করুন

সংযোগটি একবার প্রতিষ্ঠিত হয়ে গেলে পুনরায় ব্যবহারের উদ্দেশ্যে সঞ্চয় করা ভাল।

// init connection object
private Connection connection;
// init properties object
private Properties properties;

বৈশিষ্ট্য তৈরি করুন

বৈশিষ্ট্যগুলির অবজেক্টটি সংযোগের তথ্য ধারণ করে, এটি ইতিমধ্যে সেট করা আছে কিনা তা পরীক্ষা করুন।

// create properties
private Properties getProperties() {
    if (properties == null) {
        properties = new Properties();
        properties.setProperty("user", USERNAME);
        properties.setProperty("password", PASSWORD);
        properties.setProperty("MaxPooledStatements", MAX_POOL);
    }
    return properties;
}

ডাটাবেস সংযোগ করুন

এখন আরম্ভকৃত ধাপ এবং বৈশিষ্ট্যগুলি ব্যবহার করে ডাটাবেসে সংযোগ করুন।

// connect database
public Connection connect() {
    if (connection == null) {
        try {
            Class.forName(DATABASE_DRIVER);
            connection = DriverManager.getConnection(DATABASE_URL, getProperties());
        } catch (ClassNotFoundException | SQLException e) {
            // Java 7+
            e.printStackTrace();
        }
    }
    return connection;
}

ডাটাবেসটি সংযোগ বিচ্ছিন্ন করুন

আপনার ডাটাবেস ক্রিয়াকলাপ শেষ হয়ে গেলে, সংযোগটি বন্ধ করুন।

// disconnect database
public void disconnect() {
    if (connection != null) {
        try {
            connection.close();
            connection = null;
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

সবকিছু একসাথে

ডাটাবেস_নাম MysqlConnect, ব্যবহারকারীর নাম এবং পাসওয়ার্ড ইত্যাদি পরিবর্তন করার পরে এই ক্লাসটি সরাসরি ব্যবহার করুন

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class MysqlConnect {
    // init database constants
    private static final String DATABASE_DRIVER = "com.mysql.cj.jdbc.Driver";
    private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/database_name";
    private static final String USERNAME = "root";
    private static final String PASSWORD = "";
    private static final String MAX_POOL = "250";

    // init connection object
    private Connection connection;
    // init properties object
    private Properties properties;

    // create properties
    private Properties getProperties() {
        if (properties == null) {
            properties = new Properties();
            properties.setProperty("user", USERNAME);
            properties.setProperty("password", PASSWORD);
            properties.setProperty("MaxPooledStatements", MAX_POOL);
        }
        return properties;
    }

    // connect database
    public Connection connect() {
        if (connection == null) {
            try {
                Class.forName(DATABASE_DRIVER);
                connection = DriverManager.getConnection(DATABASE_URL, getProperties());
            } catch (ClassNotFoundException | SQLException e) {
                e.printStackTrace();
            }
        }
        return connection;
    }

    // disconnect database
    public void disconnect() {
        if (connection != null) {
            try {
                connection.close();
                connection = null;
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

ব্যবহারবিধি?

ডাটাবেস ক্লাস শুরু করুন।

// !_ note _! this is just init
// it will not create a connection
MysqlConnect mysqlConnect = new MysqlConnect();

আপনার কোডে অন্য কোথাও ...

String sql = "SELECT * FROM `stackoverflow`";
try {
    PreparedStatement statement = mysqlConnect.connect().prepareStatement(sql);
    ... go on ...
    ... go on ...
    ... DONE ....
} catch (SQLException e) {
    e.printStackTrace();
} finally {
    mysqlConnect.disconnect();
}

এগুলি সবই :) এডিট করার উন্নতি যদি কিছু হয়! আশা করি এটি সহায়ক।


চিহ্নিত করুন, প্রতিটি বর্গের নিজস্ব স্বতন্ত্র মাইএসকিএল কানেক্ট সংঘটিত বজায় রাখা কি সবসময় খোলার প্রয়োজন মনে করে - তাদের ডেটা বুদ্ধিমানভাবে ইন্টারেক্ট করার দরকার আছে? আমি শুধু ভাবছি যে ক্লাসগুলির মধ্যে এই সেটআপটি কীভাবে কাজ করে।
মাইকেল সিমস

স্থানে com.mysql.jdbc.Driverএই jdbc:mysql://localhost:3306/stocksযেমন সাবেক অবচিত ব্যবহার করা উচিত।
চৌদ্দ ওয়াকাস

আপনি যদি হার্ডওয়ারের অ্যাকাউন্টের নাম, পাসওয়ার্ড, ডাটাবেসের নাম ইত্যাদিতে যান তবে এই উপায়টি খুব আনাড়ি। এই সমস্ত বিবরণ কেবল জেডিবিসি ইউআরএল স্ট্রিংয়ে রেখে দিন। (পুলের আকার সহ ...)
স্টিফেন সি

24
String url = "jdbc:mysql://127.0.0.1:3306/yourdatabase";
String user = "username";
String password = "password";

// Load the Connector/J driver
Class.forName("com.mysql.jdbc.Driver").newInstance();
// Establish connection to MySQL
Connection conn = DriverManager.getConnection(url, user, password);

এখানে আপনার ডেটাবেস কি? ডাটাবেসের নাম?
Koray Tugay

newInstance () প্রয়োজনীয় নয়। তাই কি?
মোহাম্মদ এন্নাহাদি এল ইদ্রিসি

নাঃ। এটা না। এবং জাভা 6 এর পরে এই পুরো পদ্ধতির মেয়াদ শেষ। এবং ড্রাইভার শ্রেণীর নাম পরিবর্তন হয়েছে এবং ....
স্টিফেন সি

12

এখানে মাইএসকিউএল ডাটাবেস থেকে আপনার তথ্য বের করতে খুব ন্যূনতম:

Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conn = DriverManager.getConnection
   ("jdbc:mysql://localhost:3306/foo", "root", "password");

Statement stmt = conn.createStatement();
stmt.execute("SELECT * FROM `FOO.BAR`");
stmt.close();
conn.close();

স্বাদে ব্যতিক্রম হ্যান্ডলিং, কনফিগারেশন ইত্যাদি যুক্ত করুন।


3
তোমার দরকার কেন Class.forName(...).newInstance()?
ডন চ্যাডল

5
@mmcrae আপনি না, যেহেতু 2007
Lorne এর মার্কুইস

3

ইউএসএসএল সহ মাইএসকিউএল জেডিবিসি সংযোগ।

private String db_server = BaseMethods.getSystemData("db_server");
private String db_user = BaseMethods.getSystemData("db_user");
private String db_password = BaseMethods.getSystemData("db_password");

private String connectToDb() throws Exception {
   String jdbcDriver = "com.mysql.jdbc.Driver";
   String dbUrl = "jdbc:mysql://" + db_server  +
        "?verifyServerCertificate=false" +
        "&useSSL=true" +
        "&requireSSL=true";
    System.setProperty(jdbcDriver, "");
    Class.forName(jdbcDriver).newInstance();

    Connection conn = DriverManager.getConnection(dbUrl, db_user, db_password);
    Statement statement = conn.createStatement();
    String query = "SELECT EXTERNAL_ID FROM offer_letter where ID =" + "\"" + letterID + "\"";
    ResultSet resultSet = statement.executeQuery(query);
    resultSet.next();
    return resultSet.getString(1);
}

2

আপনার ক্লাসপথে আপনার মাইএসকিএল সংযোগকারী জার থাকা দরকার।

জাভাতে জেডিবিসি এপিআই ডেটাবেসগুলি দিয়ে সবকিছু তৈরি করে। জেডিবিসি ব্যবহার করে আমরা জাভা অ্যাপ্লিকেশনগুলি
১ এ লিখতে পারি qu

নীচে তিনটি পদক্ষেপের সাথে আমরা যে কোনও ডাটাবেস থেকে ডেটা পুনরুদ্ধার করতে পারি

Connection con = DriverManager.getConnection(
                     "jdbc:myDriver:DatabaseName",
                     dBuserName,
                     dBuserPassword);

Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT a, b, c FROM Table");

while (rs.next()) {
    int x = rs.getInt("a");
    String s = rs.getString("b");
    float f = rs.getFloat("c");
}

2

সংক্ষিপ্ত এবং মিষ্টি কোড।

try {       
    Class.forName("com.mysql.jdbc.Driver");
    System.out.println("Driver Loaded");
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testDB","root","");
    //Database Name - testDB, Username - "root", Password - ""
    System.out.println("Connected...");         
} catch(Exception e) {
    e.printStackTrace();
}

এসকিউএল সার্ভার ২০১২ এর জন্য

try {
    String url = "jdbc:sqlserver://KHILAN:1433;databaseName=testDB;user=Khilan;password=Tuxedo123"; 
    //KHILAN is Host    and 1433 is port number     
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    System.out.println("Driver Loaded");
    conn = DriverManager.getConnection(url);
    System.out.println("Connected...");
} catch(Exception e) {
    e.printStackTrace();
}

1

Connectionআমি কিছু সময় আগে ব্যবহার করছিলাম, এটি সবচেয়ে সহজ পদ্ধতির মতো দেখাচ্ছিল, তবে সেখানে ifবিবৃতি দেওয়ারও সুপারিশ ছিল - হুবহু

Connection con = DriverManager.getConnection(
                     "jdbc:myDriver:DatabaseName",
                     dBuserName,
                     dBuserPassword);
if (con != null){
 //..handle your code there 
}

বা এরকম কিছু :)

সম্ভবত কিছু ক্ষেত্রে আছে, যখন getConnectionফিরে আসতে পারে null :)


এই উত্তরে অনেক অনুমান, এবং তাদের মধ্যে কিছু ভুল
স্টিফেন সি

1

আপনি এখানে জাভা অ্যাপ্লিকেশন থেকে মাইএসকিউএল ডাটাবেস সংযোগ করার জন্য সমস্ত পদক্ষেপ দেখতে পাচ্ছেন । অন্যান্য ডাটাবেসের জন্য, আপনাকে কেবলমাত্র প্রথম পদক্ষেপে ড্রাইভার পরিবর্তন করতে হবে। আপনি ডাটাবেস এবং সঠিক ব্যবহারকারীর নাম এবং পাসওয়ার্ড সঠিক পথ প্রদান নিশ্চিত করুন।

পরিদর্শন http://apekshit.com/t/51/Steps-to-connect-Database-using-JAVA


1
কেমন
  • দ্রুত নমুনা চালানোর জন্য ড্রাইভার সেট আপ করতে
1. Go to https://dev.mysql.com/downloads/connector/j/, get the latest version of Connector/J

2. Remember to set the classpath to include the path of the connector jar file.
If we don't set it correctly, below errors can occur:

No suitable driver found for jdbc:mysql://127.0.0.1:3306/msystem_development

java.lang.ClassNotFoundException: com.mysql.jdbc:Driver
  • CLASSPATH সেট আপ করতে

পদ্ধতি 1: CLASSPATH ভেরিয়েবল সেট করুন।

export CLASSPATH=".:mysql-connector-java-VERSION.jar"
java MyClassFile

উপরের কমান্ডে, আমি বর্তমান ফোল্ডার এবং মাইএসকিএল-সংযোজক-জাভা-ভার্সন.জার ফাইলটিতে CLASSPATH সেট করেছি। সুতরাং যখন java MyClassFileকমান্ডটি কার্যকর করা হবে, জাভা অ্যাপ্লিকেশন প্রবর্তক CLASSPATH- তে সমস্ত জাভা ক্লাস লোড করার চেষ্টা করবে। এবং এটি Driveক্লাস => বোমের ত্রুটিগুলি বিভ্রান্ত হয়ে গেছে found

পদ্ধতি 2:

java -cp .:mysql-connector-java-VERSION.jar MyClassFile

দ্রষ্টব্য: Class.forName ("com.mysql.jdbc.Driver"); এটি এই মুহুর্তে 2019 এপ্রি।

আশা করি এটি কারও সাহায্য করতে পারে!


-1

মাই এসকিএল জেডিবিসি সংযোগ:

Class.forName("com.mysql.jdbc.Driver");     

Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/DatabaseName","Username","Password");         
Statement stmt=con.createStatement();            
stmt = con.createStatement();
ResultSet rs=stmt.executeQuery("Select * from Table");  

-1

জেডিবিসি ড্রাইভার ডাউনলোড করুন

ডাউনলোড লিঙ্ক (প্ল্যাটফর্মটি স্বাধীনভাবে নির্বাচন করুন): https://dev.mysql.com/downloads/connector/j/

জেডিবিসি ড্রাইভারকে সি ড্রাইভে সরান

ফাইলগুলি আনজিপ করুন এবং সি: \ ড্রাইভে যান। আপনার ড্রাইভারের পথটি এমন হওয়া উচিতC:\mysql-connector-java-8.0.19\mysql-connector-java-8.0.19

আপনার জাভা চালান

java -cp "C:\mysql-connector-java-8.0.19\mysql-connector-java-8.0.19\mysql-connector-java-8.0.19.jar" testMySQL.java

testMySQL.java

import java.sql.*;
import java.io.*;

public class testMySQL {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
        try
        {  
            Class.forName("com.mysql.cj.jdbc.Driver");  
            Connection con=DriverManager.getConnection(  
                "jdbc:mysql://localhost:3306/db?useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC","root","");  
            Statement stmt=con.createStatement();  
            ResultSet rs=stmt.executeQuery("show databases;");  
            System.out.println("Connected");  
        }
        catch(Exception e)
        {
            System.out.println(e);
        }

    }  

}

এখানে চিত্র বর্ণনা লিখুন


-2

শর্ট কোড

public class DB {

    public static Connection c;

    public static Connection getConnection() throws Exception {
        if (c == null) {
            Class.forName("com.mysql.jdbc.Driver");
            c =DriverManager.getConnection("jdbc:mysql://localhost:3306/DATABASE", "USERNAME", "Password");
        }
        return c;
    }

    // Send data TO Database
    public static void setData(String sql) throws Exception {
        DB.getConnection().createStatement().executeUpdate(sql);
    }

    // Get Data From Database
    public static ResultSet getData(String sql) throws Exception {
        ResultSet rs = DB.getConnection().createStatement().executeQuery(sql);
        return rs;
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.