Java JDBC Koneksi dan Penggunaan
jdbc
Pengemudi impor
// JAR adalah set file kelas kemasan, yang dapat dirujuk ke proyek lain
// Impor stoples eksternal di jalur build
Terhubung ke JDBC
1. Muat driver
Class.from ("com.mysql.jdbc.driver");Buat koneksi
// Paket panduan menggunakan java.sql.*; String JDBC = "JDBC: MySQL: // LocalHost: 3306/Siswa? Pengguna = root & kata sandi = & karakterEncoding = UTF-8"; // Siswa adalah koneksi nama tabel Conn = driverManager.getConnection (JDBC);
2. Perhatikan bahwa setelah database dibuka, ingatlah untuk menutupnya.
conn.close ();
1. Jalankan pernyataan SQL (buat tabel, masukkan, hapus, perbarui)
Menggunakan statemant
Statemant st = conn.createStateMant (); int row = St.ExecuteUpdate (pernyataan SQL); // tidak dapat melakukan operasi kueri.
Menggunakan persiapan
Bisakah itu digunakan? Placeholder untuk menggantikan parameter yang harus Anda lewati
String sql = "masukkan ke dalam" + tableName + "(name, subjek, skor) nilai (?, ?,?)"; Persiapan pt = conn.preparestateMent (sql); // Atur nilai untuk setiap placeholder, dan subskrip dimulai dari 1 pt.setstring (1, score.getName ()); pt.setstring (2.score.getSubject ()); pt.setDouble (3, skor.getScore ()); // Gunakan metode tanpa parameter pt.executeUpdate ();
1. Operasi kueri
Daftar statis <sore> queryscore (koneksi pconn, skor pscore) melempar sqlexception {arraylist <sor skor> mList = arraylist baru <> (); String sql = "pilih * dari" + tableName + "where name =?"; Disiapkan ps = pconn.preparestatement (sql); ps.setstring (1, pscore.getName ()); Hasil rs = ps.executeQuery (); while (rs.next ()) {// di sini Anda bisa mendapatkan semua hasil melalui rs string subjek = rs.getString ("subjek"); int id = rs.getint ("id"); skor ganda = rs.getDouble ("skor"); mlist.add (skor baru (id, pscore.getname (), subjek, skor)); } return mList; }Ini program kecil
// Buat kelas koneksi basis data kelas publik DAO {// Tanyakan alamat tautan database string statis jdbc = "jdbc: mysql: // localhost: 3306/student? User = root & password = & characterencoding = UTF-8"; // buka tautan koneksi public static connection () {// Langkah untuk menggunakan JDBC // 1. Muat driver JDBC coba {// Nama lengkap dari kelas + nama kelas kelas.forname ("com.mysql.jdbc.driver"); // 2. Sambungkan ke koneksi database conn = driverManager.getConnection (jdbc); return conn; } catch (Exception e) {System.out.println ("Driver Load Failure"); kembali nol; }}} // skor kelas kelas publik skor {string name; ID string; Subjek string; skor ganda; skor publik (nama string, subjek string, skor ganda) {super (); this.name = name; this.subject = subjek; this.score = skor; } @Override Public String ToString () {return "skor [name =" + name + ", id =" + id + ", subjek =" + subjek + ", skor =" + skor + "]"; } skor publik (nama string, id string, subjek string, skor ganda) {super (); this.name = name; this.id = id; this.subject = subjek; this.score = skor; } public string getName () {return name; } public void setName (name string) {this.name = name; } public String getId () {return id; } public void setId (string id) {this.id = id; } string publik getSubject () {return subjek; } public void setSubject (string subjek) {this.subject = subjek; } public double getScore () {skor return; } public void setScore (skor ganda) {this.score = skor; }} // kelas implementasi tes kelas publik {public static string tableName = "skor"; public static void main (string [] args) {coba {koneksi conn = dao.connection (); if (conn! = null) {System.out.println ("Linked"); // createTable (Conn); // Masukkan rekor // skor skor = skor baru ("li si", "android", 98); // System.out.println (AddScore2 (Conn, Skor)); // deletescore (Conn, skor); // updateScore (Conn, skor); Daftar <score> daftar = queryscorebyname (Conn, "wang wu"); // queryAllscore (Conn); untuk (skor skor: daftar) {System.out.println (skor); } conn.close (); } else {system.out.println ("tautan gagal"); }} catch (sqlexception e) {e.printstacktrace (); }} // Buat tabel public static boolean createTable (koneksi koneksion) {// Mulai mengeksekusi string pernyataan SQL SQL = "CREATE TABLE" + Tablename + "(ID Integer Primary Key Auto_increment, Name Varchar (3) Not Null, Subjek Varchar (20) Tidak Null, Skor Double)"; // Untuk menjalankan pernyataan, kelas yang dieksekusi perlu dieksekusi pernyataan coba {pernyataan st = conn.createStatement (); int result = St.ExecuteUpdate (SQL); System.out.println (hasil); if (hasil! = -1) mengembalikan true; } catch (sqlexception e) {e.printstacktrace (); } return false; } // Tambahkan rekaman public static boolean addscore (koneksi koneksi, skor skor) melempar sqlexception {string sql = "masukkan ke" + tableName + "(nama, subjek, skor) nilai ('" + skor.getName () + "', '" + skor.getSubject () + "'," + getSscore () + ", '" + score.getSubject () + "'," + score.getscore () + " +" + score. " System.out.println (SQL); Pernyataan st = conn.createStatement (); int row = St.ExecuteUpdate (SQL); if (row> 0) return true; mengembalikan false; } // Tambahkan rekor 2 public static boolean addscore2 (koneksi koneksi, skor skor) melempar sqlexception {// placeholder? untuk mengganti parameter yang perlu diatur string sql = "masukkan ke" + tableName + "(nama, subjek, skor) nilai (?,?,?)"; Disiapkan ps = conn.preparestatement (sql); // Harus diberikan? Nilai yang diwakili oleh ps.setstring (1, skor.getName ()); ps.setstring (2, skor.getSubject ()); ps.setDouble (3, skor.getScore ()); // Panggil metode tanpa parameter int baris = ps.executeUpdate (); if (row> 0) return true; mengembalikan false; } public static boolean deletescore (koneksi conn, skor skor) melempar sqlexception {string sql = "hapus dari" + tableName + "where name =? dan subjek =?"; // buat persiapan persiapan disiapkan ps = conn.preparestatement (sql); ps.setstring (1, score.getName ()); ps.setstring (2, skor.getSubject ()); // ps.setDouble (3, skor.getScore ()); // jalankan int row = ps.executeUpdate (); System.out.println (baris); if (row> 0) return true; mengembalikan false; } public static boolean updateScore (koneksi konekukan, skor skor) melempar sqlexception {// ubah skor untuk string subjeknya sql = "update" + tableName + "set skor =? di mana nama =? dan subjek =?"; Disiapkan ps = conn.preparestatement (sql); ps.setDouble (1, score.getScore ()); ps.setstring (2, skor.getName ()); ps.setstring (3, skor.getSubject ()); int row = ps.executeUpdate (); System.out.println (baris); if (row> 0) return true; mengembalikan false; } Daftar statis publik <sore> queryAllScore (koneksi conn) melempar sqlexception {string sql = "pilih * dari" + tableName; // Mulai Pernyataan Kueri ST = Conn.CreateStatement (); Hasil RS = St.ExecuteQuery (SQL); Daftar <score> Daftar = Daftar ArrayList baru <Sor> (); while (rs.next ()) {// di sini Anda bisa mendapatkan semua hasil melalui rs string id = rs.getString ("id"); String name = rs.getString ("name"); Subjek String = rs.getString ("subjek"); skor ganda = rs.getDouble ("skor"); list.add (skor baru (nama, id, subjek, skor)); } // Akhiri daftar pengembalian; } Daftar statis publik <sore> queryscoreByName (koneksi koneksi, nama string) melempar sqlexception {string sql = "select * from" + tableName + "where name =?"; Disiapkan pt = conn.preparestatement (sql); pt.setstring (1, nama); Hasil rs = pt.executeQuery (); Daftar <score> Daftar = ArrayList baru <> (); while (rs.next ()) {string subjek = rs.getString ("subjek"); String id = rs.getString ("id"); skor ganda = rs.getDouble ("skor"); list.add (skor baru (nama, id, subjek, skor)); } daftar pengembalian; }