Potongan script koneksi java dengan mysql dibawah ini yang benar adalah

Bagaimana Anda terhubung ke database MySQL di Java?

Ketika saya mencoba, saya mengerti

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)

Atau

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

Atau

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

DriverManager adalah cara yang cukup lama dalam melakukan sesuatu. Cara yang lebih baik adalah mendapatkan DataSource, baik dengan mencari satu yang sudah dikonfigurasikan oleh wadah server aplikasi Anda:

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

atau instantiating dan mengkonfigurasi satu dari driver database Anda secara langsung:

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

dan kemudian mendapatkan koneksi darinya, sama seperti di atas:

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

Berikut ini adalah penjelasan langkah demi langkah cara menginstal MySQL dan JDBC dan cara menggunakannya:

  1. nduh dan instal server MySQL . Lakukan saja seperti biasa. Ingat nomor port setiap kali Anda mengubahnya. Secara default 3306.

  2. nduh driver JDBC dan masukkan classpath , ekstrak file Zip dan letakkan file JAR yang berisi di classpath. Driver JDBC khusus vendor adalah implementasi konkret dari JDBC API ( tutorial di sini ).

    Jika Anda menggunakan IDE seperti Eclipse atau Netbeans, maka Anda dapat menambahkannya ke classpath dengan menambahkan file JAR sebagai Library ke Build Path = di properti proyek.

    Jika Anda melakukannya "plain Vanilla" di konsol perintah, maka Anda perlu menentukan path ke file JAR dalam argumen -cp atau -classpath saat menjalankan aplikasi Java Anda.

    Java -cp.;/Path/ke/mysql-connector.jar com.example.YourClass

    . hanya ada di sana untuk menambahkan direktori current ​​ke classpath juga sehingga ia dapat menemukan com.example.YourClass dan ; adalah pemisah classpath seperti di Windows. Dalam Unix dan klon : harus digunakan.

  3. Buat database di MySQL . Mari kita membuat javabase database. Anda tentu saja ingin Dominasi Dunia, jadi mari kita gunakan UTF-8 juga.

    CREATE DATABASE javabase DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
    
  4. Buat pengguna untuk Java dan hibah aksesnya . Hanya karena menggunakan root adalah praktik yang buruk.

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

    Ya, Java adalah nama pengguna dan password adalah kata sandi di sini.

  5. Tentukan URL JDBC . Untuk menghubungkan database MySQL menggunakan Java, Anda memerlukan URL JDBC dalam sintaks berikut:

    jdbc: mysql: // hostname: port/databasename
    • hostname: Nama host tempat server MySQL diinstal. Jika diinstal di mesin yang sama di mana Anda menjalankan kode Java, maka Anda bisa menggunakan localhost. Itu juga bisa menjadi alamat IP seperti 127.0.0.1. Jika Anda mengalami masalah konektivitas dan menggunakan 127.0.0.1 alih-alih localhost menyelesaikannya, maka Anda memiliki masalah dalam konfigurasi jaringan/DNS/host Anda.

    • port: Port TCP/IP tempat server MySQL mendengarkan. Ini secara default 3306.

    • databasename: Nama database yang ingin Anda sambungkan. Itu javabase.

    Jadi URL akhir akan terlihat seperti:

    jdbc: mysql: // localhost: 3306/javabase
  6. ji koneksi ke MySQL menggunakan Java . Buat kelas Java sederhana dengan metode main() untuk menguji koneksi.

    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);
    }
    

    Jika Anda mendapatkan SQLException: No suitable driver, maka itu berarti bahwa driver JDBC sama sekali tidak dimuat secara otomatis atau URL JDBC salah (mis. Itu tidak dikenali oleh driver yang dimuat). Biasanya, driver JDBC 4.0 harus di-autoload ketika Anda baru saja menjatuhkannya di runtime classpath. Untuk mengecualikan satu dan lainnya, Anda selalu dapat memuatnya secara manual seperti di bawah ini:

    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);
    }
    

    Perhatikan bahwa panggilan newInstance() adalah tidak diperlukan di sini. Hanya untuk memperbaiki org.gjt.mm.mysql.Driver yang lama dan bermasalah. Penjelasan di sini . Jika baris ini melempar ClassNotFoundException, maka file JAR yang berisi kelas driver JDBC sama sekali tidak ditempatkan di classpath.

    Perhatikan bahwa Anda tidak perlu memuat driver setiap kali sebelum menghubungkan. Hanya sekali saja selama startup aplikasi sudah cukup.

    Jika Anda mendapatkan SQLException: Connection refused atau Connection timed out atau CommunicationsException: Communications link failure khusus MySQL, maka itu berarti DB tidak dapat dijangkau sama sekali. Ini dapat memiliki satu atau lebih penyebab berikut:

    1. Alamat IP atau nama host di URL JDBC salah.
    2. Nama host di URL JDBC tidak dikenali oleh server DNS lokal.
    3. Nomor port tidak ada atau salah dalam URL JDBC.
    4. Server DB sedang down.
    5. Server DB tidak menerima koneksi TCP/IP.
    6. Server DB kehabisan koneksi.
    7. Sesuatu di antara Java dan DB memblokir koneksi, mis. firewall atau proksi.

    Untuk mengatasi yang satu atau yang lain, ikuti saran berikut:

    1. Verifikasi dan ujilah dengan ping.
    2. Segarkan DNS atau gunakan alamat IP dalam URL JDBC.
    3. Verifikasi berdasarkan my.cnf dari MySQL DB.
    4. Mulai DB.
    5. Verifikasi apakah mysqld dimulai tanpa --skip-networking option.
    6. Mulai ulang DB dan perbaiki kode Anda sehingga menutup koneksi di finally.
    7. Nonaktifkan firewall dan/atau konfigurasikan firewall/proxy untuk mengizinkan/meneruskan port.

    Perhatikan bahwa menutup Connection adalah sangat penting. Jika Anda tidak menutup koneksi dan terus mendapatkan banyak dari mereka dalam waktu singkat, maka database mungkin kehabisan koneksi dan aplikasi Anda mungkin rusak. Selalu dapatkan Connection dalam --- try-with-resources statement . Atau jika Anda belum menggunakan Java 7, tutup secara eksplisit di finally dari blok try-finally. Menutup finally hanya untuk memastikan bahwa itu ditutup juga jika ada pengecualian. Ini juga berlaku untuk Statement, PreparedStatement dan ResultSet.

Itu sejauh menyangkut konektivitas. Anda dapat menemukan di sini tutorial yang lebih maju bagaimana memuat dan menyimpan objek model Java yang layak dalam database dengan bantuan kelas DAO dasar.


Menggunakan Pola Singleton untuk koneksi DB adalah pendekatan yang buruk. Lihat di antara pertanyaan lain: http://stackoverflow.com/q/9428573/ . Ini adalah kesalahan pemula # 1.

Inisialisasi konstanta basis data

Buat nama pengguna, kata sandi, URL dan driver properti konstan, batas pemungutan suara, dll.

// init database constants
private static final String DATABASE_DRIVER = "com.mysql.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

Inisialisasi Koneksi dan Properti

Setelah koneksi dibuat, lebih baik menyimpan untuk tujuan penggunaan kembali.

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

Buat Properti

Objek properti menyimpan informasi koneksi, periksa apakah sudah disetel.

// 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;
}

Hubungkan Database

Sekarang terhubung ke database menggunakan konstanta dan properti yang diinisialisasi.

// 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;
}

Putuskan koneksi basis data

Setelah Anda selesai dengan operasi database, tutup saja koneksi.

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

Semuanya bersama

Gunakan kelas ini MysqlConnect secara langsung setelah mengubah database_name, nama pengguna dan kata sandi dll.

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.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();
            }
        }
    }
}

Bagaimana cara menggunakan?

Inisialisasi kelas basis data.

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

Di tempat lain dalam kode Anda ...

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();
}

Ini semua :) Jika ada yang perlu diperbaiki, edit! Semoga ini bermanfaat.

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);

Inilah jumlah minimum yang Anda butuhkan untuk mendapatkan data dari database MySQL:

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();

Tambahkan penanganan pengecualian, konfigurasi, dll. Sesuai selera.

Koneksi MySQL JDBC dengan useSSL.

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);
}

Kode pendek dan manis.

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();
    }

Untuk SQL server 2012

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();
    }

Anda dapat melihat semua langkah untuk menghubungkan database MySQL dari aplikasi Java di sini . Untuk database lain, Anda hanya perlu mengubah driver pada langkah pertama saja. Pastikan Anda memberikan jalur yang benar ke basis data dan memperbaiki nama pengguna dan kata sandi.

Kunjungi http://apekshit.com/t/51/Steps-to-connect-Database-using-Java

anda perlu memiliki tabung konektor mysql di classpath Anda.

di Java JDBC API membuat semuanya dengan database. menggunakan JDBC kita dapat menulis aplikasi Java ke
1. Kirim pertanyaan atau perbarui SQL ke DB (semua database relasional) 2. Ambil dan proses hasil dari DB

dengan tiga langkah di bawah ini kami dapat mengambil data dari Database apa pun

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");
}

Connection Saya menggunakan beberapa waktu yang lalu, itu tampak seperti cara termudah, tetapi juga ada rekomendasi untuk membuat ada if pernyataan- tepat

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

Atau sesuatu seperti itu :)

Mungkin ada beberapa kasus, sementara getConnection dapat mengembalikan null :)

Koneksi MySql JDBC:

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

  • Untuk mengatur Driver untuk menjalankan sampel cepat
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
  • Untuk mengatur CLASSPATH

Metode 1: mengatur variabel CLASSPATH.

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

Dalam perintah di atas, saya telah mengatur CLASSPATH ke folder saat ini dan file mysql-connector-Java-VERSION.jar. Jadi ketika perintah Java MyClassFile dieksekusi, peluncur aplikasi Java akan mencoba memuat semua kelas Java di CLASSPATH. Dan ternyata Drive class => kesalahan BOOM hilang.

Metode 2:

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

Catatan: Class.forName ("com.mysql.jdbc.Driver"); Ini sudah ditinggalkan saat ini 2019 Apr.

Semoga ini bisa membantu seseorang!

Bagaimana cara menghubungkan java ke MySQL?

Langkah-langkah menghubungkan Java dengan MySQL:.
Impor package java.sql.* ;.
Daftarkan driver atau pilih driver yang akan digunakan;.
Buat Sebuah Koneksi;.
Exsekusi sebuah Query;.
Tutup koneksi dan selesai..

Sebutkan 3 langkah utama untuk melakukan koneksi ke database?

(1) membuat koneksi sengan server database. (2) Membuat perintah dan mengirimkannya ke server database. (3) menerima dan mengolah hasil.

Langkah

Langkah-langkah untuk berinteraksi dengan database server dengan menggunakan JDBC adalah sebagai berikut :.
Mengimpor package java.sql..
Memanggil Driver JDBC..
Membangun Koneksi..
Membuat Statement..
Melakukan Query..
Memproses Hasil..
Menutup Koneksi..
Penanganan Error..

Apa yang dimaksud dengan JDBC Driver?

JDBC adalah Application Programming Interface (API) yang menyediakan fungsi-fungsi dasar untuk akses data. JDBC API terdiri atas sejumlah class dan interface yang dapat digunakan untuk menulis aplikasi database dengan menggunakan Java.