java連接mysql有五種方式,分別是:
(學(xué)習(xí)視頻分享:java教學(xué)視頻)
第一種方式:將用戶名和密碼封裝在Properties類中
首先,導(dǎo)入數(shù)據(jù)庫連接包這個是毋庸置疑的。創(chuàng)建一個jdbc驅(qū)動dirver。將數(shù)據(jù)庫(以MySQL為例)的url保存在所創(chuàng)建的字符串url中。如果mysql版本低于8.0,則url保存形式應(yīng)該為:
String?url?=?"jdbc:mysql://localhost:3306/test"
如果mysql版本為8.0版本或以上,url保存形式為:
String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai";
這里使用的mysql版本是8.0,所以在后面加上了時區(qū),否則默認是UTC時區(qū),比北京時間晚8小時。
然后將mysql數(shù)據(jù)庫對應(yīng)的user和password封裝在Properties類中,最后通過Connection類來創(chuàng)建數(shù)據(jù)庫連接,源代碼如下:
Driver?driver?=?new?com.mysql.jdbc.Driver(); ????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????/* ????????將用戶名和密碼封裝在Properties中 ?????????*/ ????????Properties?info?=?new?Properties(); ????????info.setProperty("user","root"); ????????info.setProperty("password","ab20010322"); ????????Connection?conn?=?driver.connect(url,info); ????????System.out.println(conn);
第二種方式:在方式一的基礎(chǔ)上,利用反射實現(xiàn)驅(qū)動
將第一種方式中:
Driver?driver?=?new?com.mysql.jdbc.Driver();
更改為:
Class?clazz?=?Class.forName("com.mysql.jdbc.Driver"); Driver?driver?=?(Driver)?clazz.newInstance();
相對于第一種方式,兩種實現(xiàn)的功能相同,但是第二種方式利用反射來實現(xiàn)驅(qū)動,這樣可以避免使用第三方接口,使得代碼有更好的可移植性。第二種方式源代碼如下:
?/* ????????使用反射獲取Driver類實例 ????????與Driver?driver?=?new?com.mysql.jdbc.Driver()功能相同,只是不適用第三方接口,使得程序具有更好的可移植性 ?????????*/ ????????Class?clazz?=?Class.forName("com.mysql.jdbc.Driver"); ????????Driver?driver?=?(Driver)?clazz.newInstance(); ????????/* ????????提供要連接的數(shù)據(jù)庫 ?????????*/ ????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????/* ????????提供需要的用戶名和密碼 ?????????*/ ????????Properties?info?=?new?Properties(); ????????info.setProperty("user","root"); ????????info.setProperty("password","ab20010322"); ????????Connection?connection?=?driver.connect(url,info); ????????System.out.println(connection);
第三種方式:使用DriveManager(classs)代替Drive
源代碼如下:
????????Class?clazz?=?Class.forName("com.mysql.jdbc.Driver"); ????????Driver?driver?=?(Driver)?clazz.newInstance(); ????????/* ????????提供連接信息 ?????????*/ ????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????String?user?=?"root"; ????????String?password?=?"ab20010322"; ????????/* ????????注冊驅(qū)動 ?????????*/ ????????DriverManager.registerDriver(driver); ????????/* ????????獲取連接 ?????????*/ ????????System.out.println(DriverManager.getConnection(url,user,password));
第四種方式:將加載驅(qū)動的方式隱藏起來
將方式三中
Driver?driver?=?(Driver)?clazz.newInstance(); DriverManager.registerDriver(driver);
更改為
Class.forName("com.mysql.jdbc.Driver");
這種方式,可以將驅(qū)動加載情況隱藏
源代碼如下:
????????String?url?=?"jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"; ????????String?user?=?"root"; ????????String?password?=?"ab20010322"; ????????/* ????????加載Driver ?????????*/ ????????Class.forName("com.mysql.jdbc.Driver");//????????Driver?driver?=?(Driver)?clazz.newInstance();//????????DriverManager.registerDriver(driver); ????????/* ????????獲取連接 ?????????*/ ????????System.out.println(DriverManager.getConnection(url,user,password));
方式五:將數(shù)據(jù)庫需要的基本信息放在jdbc.properties配置文件中
對于上面四種連接方式,都將數(shù)據(jù)庫信息裸露出來。這樣做是不安全的。對此,我們應(yīng)該將數(shù)據(jù)庫需要的基本信息放在jdbc.properties配置文件中,再通過InputStream讀取出來。這是安全的也是我們最常用的數(shù)據(jù)庫連接方式
配置文件jdbc.properties如下:
user=root password=123456url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=Asia/Shanghai Driver=com.mysql.cj.jdbc.Driver
注意:
1、配置文件應(yīng)該放在src文件夾下
2、user和password使用自己的數(shù)據(jù)庫用戶名和密碼
3、如果使用的是mysql8.0以上版本,在配置url文件時應(yīng)該在后面加上時區(qū),否則會報錯
源代碼如下:
????????InputStream?inputStream?=?ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); ????????Properties?info?=?new?Properties(); ????????info.load(inputStream); ???????? ????????String?user?=??info.getProperty("user"); ????????String?password?=?info.getProperty("password"); ????????String?url?=?info.getProperty("url"); ????????String?driver?=?info.getProperty("Driver"); ????????/* ????????加載驅(qū)動 ?????????*/ ????????Class.forName(driver); ????????/* ????????獲取連接 ?????????*/ ????????Connection?conn?=?DriverManager.getConnection(url,user,password); ????????System.out.println(conn);
相關(guān)推薦:java入門教程
Atas ialah kandungan terperinci java有幾種連接mysql的方式?分別是什么?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Untuk mengendalikan transaksi JDBC dengan betul, anda mesti terlebih dahulu mematikan mod komit automatik, kemudian melakukan pelbagai operasi, dan akhirnya melakukan atau mengembalikan semula hasilnya; 1. Panggil Conn.SetAutOcommit (palsu) untuk memulakan transaksi; 2. Melaksanakan pelbagai operasi SQL, seperti memasukkan dan mengemaskini; 3. Panggil Conn.Commit () jika semua operasi berjaya, dan hubungi conn.rollback () jika pengecualian berlaku untuk memastikan konsistensi data; Pada masa yang sama, cuba-dengan-sumber harus digunakan untuk menguruskan sumber, mengendalikan pengecualian dengan betul dan menutup sambungan untuk mengelakkan kebocoran sambungan; Di samping itu, adalah disyorkan untuk menggunakan kolam sambungan dan menetapkan mata simpan untuk mencapai rollback separa, dan menyimpan urus niaga sesingkat mungkin untuk meningkatkan prestasi.

Pra-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusoftenperforminglightbetterine serverless scenarios.tyvelopecosyste,

Koleksi Sampah Java (GC) adalah mekanisme yang secara automatik menguruskan ingatan, yang mengurangkan risiko kebocoran ingatan dengan menuntut semula objek yang tidak dapat dicapai. 1.GC menghakimi kebolehcapaian objek dari objek akar (seperti pembolehubah stack, benang aktif, medan statik, dan lain -lain), dan objek yang tidak dapat dicapai ditandakan sebagai sampah. 2. Berdasarkan algoritma penandaan tanda, tandakan semua objek yang dapat dicapai dan objek yang tidak ditandai. 3. Mengamalkan strategi pengumpulan generasi: Generasi Baru (Eden, S0, S1) sering melaksanakan MinorGC; Orang tua melakukan kurang tetapi mengambil masa lebih lama untuk melakukan MajorGC; Metaspace Stores Metadata kelas. 4. JVM menyediakan pelbagai peranti GC: SerialGC sesuai untuk aplikasi kecil; ParallelGC meningkatkan throughput; CMS mengurangkan

GradleisthebetterChoiceFormostNewProjectSduetoitSsuperiorflexibility, Prestasi, danModernToolingSupport.1.Gradle'sGroovy/KOT lindslismoreconciseandexpressivethanmaven'sverbosexml.2.GradleOutPerformsMaveninBuildSpeedWithIncrementalcompilation, BuildCac

Memilih jenis htmlinput yang betul dapat meningkatkan ketepatan data, meningkatkan pengalaman pengguna, dan meningkatkan kebolehgunaan. 1. Pilih jenis input yang sepadan mengikut jenis data, seperti teks, e -mel, tel, nombor dan tarikh, yang secara automatik boleh menyemak dan menyesuaikan diri dengan papan kekunci; 2. Gunakan HTML5 untuk menambah jenis baru seperti URL, Warna, Julat dan Carian, yang dapat memberikan kaedah interaksi yang lebih intuitif; 3. Gunakan pemegang tempat dan sifat -sifat yang diperlukan untuk meningkatkan kecekapan dan ketepatan pengisian bentuk, tetapi harus diperhatikan bahawa pemegang tempat tidak dapat menggantikan label.

HTTP Log Middleware di GO boleh merakam kaedah permintaan, laluan, IP klien dan memakan masa. 1. Gunakan http.handlerfunc untuk membungkus pemproses, 2. Rekod waktu mula dan masa akhir sebelum dan selepas memanggil next.servehttp, 3. Dapatkan IP pelanggan sebenar melalui r.remoteaddr dan X-forward-for headers, 4. Gunakan log.printf untuk mengeluarkan log permintaan, 5. Kod sampel lengkap telah disahkan untuk dijalankan dan sesuai untuk memulakan projek kecil dan sederhana. Cadangan lanjutan termasuk menangkap kod status, menyokong log JSON dan meminta penjejakan ID.

Executorservice sesuai untuk pelaksanaan asynchronous terhadap tugas bebas, seperti operasi I/O atau tugas masa, menggunakan kolam thread untuk menguruskan konkurensi, mengemukakan tugas -tugas yang boleh dilancarkan atau boleh dipanggil melalui penyerahan, dan mendapatkan hasil dengan masa depan. Perhatikan risiko beratur yang tidak terkawal dan secara jelas menutup kolam benang; 2. Ia sesuai untuk penjumlahan array besar dan senario penyortiran. Ambang perpecahan harus ditetapkan dengan munasabah untuk mengelakkan overhead; 3. Asas Pemilihan: Bebas

Checkcompatebilitywithos, aplikasi, dan features; 2.backupalldata, configs, andlogs; 3.chooseupgrademethod (packageManager, mysqlinstaller, ormanual); 4.Runpost-upgradeChecksandTests;
