Rumah Java javaTutorial Pembangunan Java: Cara menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber

Pembangunan Java: Cara menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber

Sep 20, 2023 am 10:10 AM
jndi (watak) Sambungan pangkalan data (aksara) Pengurusan Sumber (watak)

Pembangunan Java: Cara menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber

Pembangunan Java: Menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber

Dalam pembangunan Java, JNDI (Java Penamaan dan Antara Muka Direktori) ialah API standard untuk mengurus perkhidmatan penamaan dan direktori. Ia boleh digunakan bukan sahaja untuk mengakses perkhidmatan penamaan, tetapi juga untuk menyambung ke pangkalan data, mengurus sumber, dsb. Artikel ini akan memperkenalkan cara menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber, serta memberikan contoh kod terperinci.

  1. Konfigurasikan sumber data JNDI
    Mula-mula, tambah maklumat konfigurasi sumber data JNDI dalam fail konfigurasi aplikasi web Java (seperti web.xml). Berikut ialah contoh konfigurasi:
<resource-ref>
  <description>Database Connection</description>
  <res-ref-name>jdbc/myDB</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>
Salin selepas log masuk

Di sini, kami mentakrifkan sumber data JNDI bernama jdbc/myDB dan menentukan jenisnya sebagai javax.sql.DataSource</code >. <code>jdbc/myDB的JNDI数据源,并指定了其类型为javax.sql.DataSource

  1. 在服务器中配置数据源
    接下来,需要在服务器(如Tomcat)的配置文件中,配置实际的数据库连接信息。以下是一个示例配置(在Tomcat的context.xml文件中):
<Resource name="jdbc/myDB" auth="Container"
          type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"
          url="jdbc:mysql://localhost:3306/myDB"
          username="root" password="password"
          maxTotal="100" maxIdle="30" maxWaitMillis="10000" />
Salin selepas log masuk

这里,我们配置了一个名为jdbc/myDB的数据源,指定了连接的URL、用户名、密码等信息,以及连接池的一些配置。

  1. 获取数据库连接
    在Java代码中,通过JNDI来获取数据库连接。以下是一个示例:
// 创建JNDI上下文
Context initCtx = new InitialContext();
Context envCtx = (Context) initCtx.lookup("java:comp/env");

// 获取数据源
DataSource ds = (DataSource) envCtx.lookup("jdbc/myDB");

// 获取数据库连接
Connection conn = ds.getConnection();
Salin selepas log masuk

这里,我们首先创建了JNDI的初始上下文initCtx,然后通过该上下文获取了环境上下文envCtx。接着,我们从环境上下文中获取了之前配置好的数据源jdbc/myDB

    Konfigurasikan sumber data dalam pelayan
      Seterusnya, anda perlu mengkonfigurasi maklumat sambungan pangkalan data sebenar dalam fail konfigurasi pelayan (seperti Tomcat). Berikut ialah contoh konfigurasi (dalam fail context.xml Tomcat):

    1. try {
          Statement stmt = conn.createStatement();
          ResultSet rs = stmt.executeQuery("SELECT * FROM users");
      
          while (rs.next()) {
              int id = rs.getInt("id");
              String name = rs.getString("name");
              System.out.println("User: " + id + ", " + name);
          }
      
          rs.close();
          stmt.close();
      } catch (SQLException e) {
          e.printStackTrace();
      }
      Salin selepas log masuk
    2. Di sini, kami mengkonfigurasi sumber data bernama jdbc/myDB, dengan menyatakan URL sambungan, nama pengguna, kata laluan dan maklumat lain disertakan, serta beberapa konfigurasi kumpulan sambungan.
        Dapatkan sambungan pangkalan data
      1. Dalam kod Java, dapatkan sambungan pangkalan data melalui JNDI. Berikut ialah contoh:
      2. try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        Salin selepas log masuk
        Di sini, kita mula-mula mencipta konteks awal JNDI initCtx dan kemudian mendapatkan konteks persekitaran envCtx melalui konteks ini. Seterusnya, kami memperoleh sumber data yang telah dikonfigurasikan sebelumnya jdbc/myDB daripada konteks persekitaran. Akhir sekali, dapatkan sambungan pangkalan data melalui sumber data.

        Menggunakan Sambungan Pangkalan Data
        Selepas mendapatkan sambungan pangkalan data, kami boleh menggunakannya untuk melaksanakan pelbagai operasi pangkalan data, seperti pertanyaan, sisipan, kemas kini, dll. Berikut ialah contoh mudah:

        🎜rrreee🎜🎜Tutup sambungan pangkalan data🎜Selepas anda selesai menggunakan sambungan pangkalan data, anda perlu menutupnya secara manual untuk melepaskan sumber. Berikut ialah contoh kod untuk menutup sambungan pangkalan data: 🎜🎜rrreee🎜Melalui langkah di atas, kita boleh menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber. Kelebihan menggunakan JNDI ialah maklumat sambungan pangkalan data boleh diurus secara berpusat dalam fail konfigurasi tanpa parameter sambungan pengekodan keras dalam kod, menjadikan kod lebih ringkas dan boleh diselenggara. 🎜🎜Ringkasan: 🎜Artikel ini memperkenalkan cara menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber. Dengan mengkonfigurasi sumber data JNDI, sumber data konfigurasi pelayan, mendapatkan sambungan pangkalan data, dan menggunakan dan menutup kod sampel sambungan, kami boleh menggunakan JNDI dengan mudah untuk mengurus sambungan pangkalan data dan sumber dalam pembangunan Java. Saya harap artikel ini dapat membantu pembangun yang sedang belajar dan menggunakan JNDI. 🎜

        Atas ialah kandungan terperinci Pembangunan Java: Cara menggunakan JNDI untuk sambungan pangkalan data dan pengurusan sumber. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana dengan elegan mendapatkan nama pemboleh ubah kelas entiti untuk membina keadaan pertanyaan pangkalan data? Bagaimana dengan elegan mendapatkan nama pemboleh ubah kelas entiti untuk membina keadaan pertanyaan pangkalan data? Apr 19, 2025 pm 11:42 PM

Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya? Adakah perisian keselamatan syarikat menyebabkan aplikasi gagal dijalankan? Bagaimana cara menyelesaikan masalah dan menyelesaikannya? Apr 19, 2025 pm 04:51 PM

Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Bagaimana untuk memudahkan isu pemetaan medan dalam dok sistem menggunakan mapstruct? Bagaimana untuk memudahkan isu pemetaan medan dalam dok sistem menggunakan mapstruct? Apr 19, 2025 pm 06:21 PM

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Bagaimanakah Idea IntelliJ mengenal pasti nombor port projek boot musim bunga tanpa mengeluarkan log? Bagaimanakah Idea IntelliJ mengenal pasti nombor port projek boot musim bunga tanpa mengeluarkan log? Apr 19, 2025 pm 11:45 PM

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Bagaimana cara menukar objek Java dengan selamat ke array? Bagaimana cara menukar objek Java dengan selamat ke array? Apr 19, 2025 pm 11:33 PM

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Apakah perbezaan antara kebocoran memori dalam program Java pada CPU ARM dan X86 Architecture? Apakah perbezaan antara kebocoran memori dalam program Java pada CPU ARM dan X86 Architecture? Apr 19, 2025 pm 11:18 PM

Analisis fenomena kebocoran memori program Java pada CPU seni bina yang berbeza. Artikel ini akan membincangkan kes di mana program Java mempamerkan tingkah laku memori yang berbeza di lengan dan cpus seni bina x86 ...

Bagaimana cara menukar nama ke nombor untuk melaksanakan penyortiran dalam kumpulan? Bagaimana cara menukar nama ke nombor untuk melaksanakan penyortiran dalam kumpulan? Apr 19, 2025 pm 01:57 PM

Bagaimana cara menukar nama ke nombor untuk melaksanakan penyortiran dalam kumpulan? Apabila menyusun pengguna dalam kumpulan, sering kali perlu menukar nama pengguna ke dalam nombor supaya ia boleh berbeza ...

Bagaimana menggunakan penyelesaian cache Redis untuk merealisasikan keperluan senarai kedudukan produk dengan cekap? Bagaimana menggunakan penyelesaian cache Redis untuk merealisasikan keperluan senarai kedudukan produk dengan cekap? Apr 19, 2025 pm 11:36 PM

Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...

See all articles